{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "import mdtraj as md"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "BME_JC_1-Copy1.ipynb  BME_JC_2.ipynb   \u001b[0m\u001b[01;34m__pycache__\u001b[0m/       sim_Charmm36m.dat\r\n",
      "BME_JC_1.html         bme.py           \u001b[01;34mRee_unscaled\u001b[0m/      \u001b[01;34mStructures_LL\u001b[0m/\r\n",
      "BME_JC_1.ipynb        bme_reweight.py  \u001b[01;31mRee_unscaled.zip\u001b[0m   \u001b[01;31mStructures_LL.zip\u001b[0m\r\n",
      "BME_JC_2.html         exp.dat          sim_a99SB-UCB.dat\r\n"
     ]
    }
   ],
   "source": [
    "ls"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[0m\u001b[01;34ma03ws\u001b[0m/      \u001b[01;34ma99SB-ILDN-TIP4PD\u001b[0m/     \u001b[01;34ma99SB-UCB\u001b[0m/      \u001b[01;34mCharmm36m\u001b[0m/  \u001b[01;34mExperimental\u001b[0m/\r\n",
      "\u001b[01;34ma99SBdisp\u001b[0m/  \u001b[01;34ma99SBstar-ILDN-TIP3P\u001b[0m/  \u001b[01;34mc22star-TIP3P\u001b[0m/  \u001b[01;34mCode_BME\u001b[0m/\r\n"
     ]
    }
   ],
   "source": [
    "ls .."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. Data Collection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "exp_file = '../Experimental/exp_coup.txt'\n",
    "sim_file = '../Charmm36m/phi-123.dat'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "#load your location to file\n",
    "exp_data=np.loadtxt(exp_file,usecols=(0,1))\n",
    "exp_data = exp_data.T\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#load your location to file\n",
    "sim_data = np.loadtxt(sim_file, comments='#',usecols=(0,2))\n",
    "## making groups of 40\n",
    "sim_data=sim_data[:,1]\n",
    "sim_data=np.reshape(sim_data,(-1,40)).T\n",
    "sim_data = sim_data.tolist()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "bla = []\n",
    "for i in range(40):\n",
    "    if exp_data[1][i] != 0.0:\n",
    "        bla.append([i+1,[exp_data[1][i],0.42],sim_data[i]])\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = []\n",
    "exp_data = []\n",
    "sim_data = []\n",
    "for i in range(len(bla)):\n",
    "    res.append(bla[i][0])\n",
    "    exp_data.append(bla[i][1])\n",
    "    sim_data.append(bla[i][2])\n",
    "\n",
    "res = np.array(res)\n",
    "exp_data = np.array(exp_data)\n",
    "sim_data = np.array(sim_data).T "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "# write experimental data\n",
    "fileout = open('exp.dat','w')\n",
    "fileout.write('# DATA=JCOUPLINGS PRIOR=GAUSS' + '\\n')\n",
    "for f, b in zip(res, exp_data):\n",
    "    fileout.write(str(f) + ' ' + str(b[0]) + ' ' + str(b[1]) + '\\n')\n",
    "    \n",
    "fileout.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# write simulation data\n",
    "fileout = open('sim_Charmm36m.dat','w')\n",
    "#fileout.write('# DATA=JCOUPLINGS PRIOR=GAUSS' + '\\n')\n",
    "for index, value in enumerate(sim_data):\n",
    "    fileout.write(str(index))\n",
    "    for i in range(len(sim_data[index])):\n",
    "        fileout.write(' ' + str(value[i]))\n",
    "    fileout.write('\\n')  \n",
    "fileout.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "# define plotting function. \n",
    "def plot(f1,f2,wopt=[],w=None,power=None):\n",
    "\n",
    "    # define figure size\n",
    "    fig, ax = plt.subplots(1,1,figsize=(8,5))\n",
    "    # read experimental averages and errors\n",
    "    exp_data = np.array([[float(x) for x in line.split()[1:]] for line in open(f1) if \"#\" not in line])\n",
    "    # read labels\n",
    "    labels = [line.split()[0] for line in open(f1) if \"#\" not in line]\n",
    "    # read back-calculated data \n",
    "    calc_data = np.array([[float(x) for x in line.split()[1:]] for line in open(f2) if \"#\" not in line])\n",
    "    \n",
    "    # sort by magnitude to make the plot nicer\n",
    "    idxs = np.argsort(exp_data[:,0])\n",
    "    xx = range(len(idxs))\n",
    "    \n",
    "    # plot experimental data\n",
    "    plt.errorbar(xx,exp_data[idxs,0],yerr=exp_data[idxs,1],fmt=\"o\",label=\"Exp\",c='gray')\n",
    "    # if power is specified, treat as NOE \n",
    "    if(power!=None):\n",
    "        avg = np.average(np.power(calc_data[:,idxs],-power),axis=0,weights=w)\n",
    "        plt.scatter(xx,np.power(avg,-1./power),label = \"MD\")\n",
    "    else:\n",
    "        plt.scatter(xx,np.average(calc_data[:,idxs],axis=0,weights=w),label = \"MD\")\n",
    "    # optionally use weights\n",
    "    print(len(wopt))\n",
    "    if(len(wopt)!=0):\n",
    "        if(power!=None):\n",
    "            avg = np.average(np.power(calc_data[:,idxs],-power),axis=0,weights=wopt)\n",
    "            plt.scatter(xx,np.power(avg,-1./power),label = \"MD reweighted\")\n",
    "        else:\n",
    "            plt.scatter(xx,np.average(calc_data[:,idxs],axis=0,weights=wopt),label = \"MD, reweighted\")\n",
    "    # set legend\n",
    "    plt.legend(loc=2)\n",
    "    # set xticks \n",
    "    nl = [labels[i] for i in idxs]\n",
    "    plt.xticks(xx,nl,rotation=90)\n",
    "    return labels, exp_data, calc_data\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "36\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# define name of files                                                                               \n",
    "exp_couplings = 'exp.dat'\n",
    "calc_couplings = 'sim_Charmm36m.dat'\n",
    "\n",
    "# plot data\n",
    "labels, exp_data, calc_data = plot(exp_couplings,calc_couplings)\n",
    "print (len(labels))\n",
    "plt.title(\"Scalar couplings\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEJCAYAAACaFuz/AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3deXhU5f338ffXCMYqUkSKSthsowJFtgBaEDe2xyK0oBe4/VB8jBtatVq1WMtDF/1prU9taQWVgq0CFZVGy6+WItiCokkULEtRRIQgBQRBERVivr8/5jAeQmImy+QkZz6v65qLe8423wzwyT33Oecec3dERCS+Dom6ABERSS8FvYhIzCnoRURiTkEvIhJzCnoRkZhT0IuIxFxKQW9mQ81sjZmtNbPbK1h/tZn9y8yWmdliM+scWndHsN8aMxtSl8WLiEjVrKrr6M0sC3gTGASUAIXAhe6+KrTNUe7+YdAeDlzr7kODwJ8J9AGOB/4OnOjun6fjhxERkYMdmsI2fYC17r4OwMxmASOAZNDvD/nAEcD+3x4jgFnu/hnwjpmtDY73cmUvdswxx3iHDh2q8zOI1JkPP92XbB+V3STCSurXrl27ku3mzZtHWInUVHFx8fvu3qqidakEfRtgY+h5CdC3/EZmdh1wM9AUODu079Jy+7apYN98IB+gXbt2FBUVpVCWSN3rcPtfku2ie74dYSX1y8ySbd0t3ziZ2buVrauzk7HuPtndvw7cBtxZzX2nunueu+e1alXhLyQREamhVIJ+E9A29DwnWFaZWcB3ariviIjUsVSCvhDINbOOZtYUGAMUhDcws9zQ028DbwXtAmCMmR1mZh2BXODV2pctIiKpqnKM3t1LzWw88DyQBUxz95VmNgkocvcCYLyZDQT2AR8AY4N9V5rZn0icuC0FrqvJFTf79u2jpKSETz/9tLq7ShplZ2eTk5NDkyaZc9JSpDFK5WQs7j4PmFdu2V2h9ve+ZN+fAT+raYEAJSUlNGvWjA4dOhxw0kii4+5s376dkpISOnbsGHU5IvIlGsWdsZ9++iktW7ZUyDcgZkbLli31KUukEWgUQQ8o5Bsg/Z2INA6NJuhFRKRmFPQpMjMuueSS5PPS0lJatWrFsGHDAJg+fTqtWrWiR48e5ObmMmTIEF566aWoyhURSUrpZKzAEUccwYoVK/jkk084/PDDmT9/Pm3aHHiT7+jRo/nNb34DwMKFCxk5ciQLFy6kU6dOaa+vtLSUQw/VX2dtfbPNUVGXEImePXtGXUJGGjP1wNlgZuWflpbXUY++Gs4991z+8pfELfIzZ87kwgsvrHTbs846i/z8fKZOnXrQumeffZa+ffvSo0cPBg4cyJYtWygrK6NDhw7s3LkzuV1ubi5btmxh27ZtjBo1it69e9O7d2+WLFkCwMSJE7n00kvp168fl156KevXr+f000+nZ8+e9OzZM/mJoqysjGuvvZaTTz6ZQYMGce655zJnzhwAiouLOeOMM+jVqxdDhgxh8+bNdfZ+NUbPXX968pFJiouLkw+Jn0bZBXxg/pv8asFbVW8IXNinLXePPOWAZXc8/QYzX/1i+p7vnZPLTYNOrPJYY8aMYdKkSQwbNow33niDcePG8c9//rPS7Xv27MmUKVMOWt6/f3+WLl2KmfHII49w7733cv/99zNixAieeeYZLr/8cl555RXat29P69atueiii7jpppvo378/GzZsYMiQIaxevRqAVatWsXjxYg4//HD27NnD/Pnzyc7O5q233uLCCy+kqKiIp59+mvXr17Nq1Sq2bt1Kp06dGDduHPv27eP666/nz3/+M61atWL27NlMmDCBadOmpfTeikjj0CiDPiqnnHIK69evZ+bMmZx77rlVbl/Z5FAlJSWMHj2azZs3s3fv3uR16KNHj2bSpElcfvnlzJo1i9GjRwPw97//nVWrkpOF8uGHH7J7924Ahg8fzuGHHw4kbiwbP348y5YtIysrizfffBOAxYsXc8EFF3DIIYdw7LHHctZZZwGwZs0aVqxYwaBBgwD4/PPPOe6442ry1ohIA6agr6bhw4dzyy23sGjRIrZv3/6l277++usVjs9ff/313HzzzQwfPpxFixYxceJEAE477TTWrl3Ltm3bmDt3LnfemZgbrqysjKVLl5KdnX3QsY444ohk+4EHHqB169YsX76csrKyCrcPc3e6dOnCyy9XOmu0iMRAowz6mwadmNJQS2XuHnnKQcM5qRo3bhxf/epX6dq1K4sWLap0uxdffJGpU6eycOHCg9bt2rUreSJ3xowZyeVmxne/+11uvvlmOnXqRMuWLQEYPHgwv/71r7n11lsBWLZsGd27d6/wuDk5ORxyyCHMmDGDzz9PzDbRr18/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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# find index corresponding to the desired coupling\n",
    "idx = labels.index(\"7\")\n",
    "# plot the histogram\n",
    "plt.hist(calc_data[:,idx],bins=75,density=True,alpha=0.75)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(np.average(calc_data[:,idx]),label=\"MD average\",ls=\"--\",lw=3)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(exp_data[idx,0],c='k',label=\"experimental\",ls=\"--\",lw=3)\n",
    "plt.xlabel(\"J coupling (Hz)\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2. BME reweighting ##\n",
    "\n",
    "We here show how to apply the BME reweighting procedure. Essentially, there are only three fundamental steps:\n",
    "1. Initialize the class \n",
    "2. Load the data.\n",
    "3. Optimize\n",
    "\n",
    "In the example below we match all 36 scalar couplings data described above. Theta is set to 2 for the moment being, the procedure and code to find viable values for theta are shown below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "# theta: 2\n",
      "# CHI2 before minimization:       3.0520\n",
      "# CHI2 after minimization:        0.0110\n",
      "# Fraction of effective frames:   0.2414\n"
     ]
    }
   ],
   "source": [
    "# import modules\n",
    "#import sys\n",
    "#import os\n",
    "\n",
    "# this is a trick to get the parent directory \n",
    "#directory_to_bme = os.getcwd()[:-8]\n",
    "#sys.path.append(directory_to_bme)\n",
    "\n",
    "import bme_reweight as bme\n",
    "\n",
    "# initialize reweighting class                                                                                                                                \n",
    "rew = bme.Reweight()\n",
    "\n",
    "# load data                                                                                      \n",
    "rew.load(exp_couplings,calc_couplings)\n",
    "\n",
    "# do optimization using theta=2                                                                                                                               \n",
    "chi2_before,chi2_after, srel = rew.optimize(theta=2)\n",
    "\n",
    "print (\"# CHI2 before minimization:     %8.4f\" % (chi2_before))\n",
    "print (\"# CHI2 after minimization:      %8.4f\" % (chi2_after))\n",
    "print (\"# Fraction of effective frames: %8.4f\" % (np.exp(srel)))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "29979\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeMAAAExCAYAAABPgcocAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3de5hU1Z3v//eXptQGSZEQYhQUzATxVi1Iq5l4Q2sUURuJJ+PlPMlJ64nGOU6Y5JwhP/1lQiLjRM+YmaDxjAmYkZOLCioCFUVxWiWaxAstSBkQyRhbujUJQSkFWq1u1vljV2FV9a7u2t1VXbfP63n66aq1V+9aVbV7f/dae13MOYeIiIiUz4hyF0BERKTeKRiLiIiUmYKxiIhImSkYi4iIlJmCsYiISJmNLNcLf/zjH3eTJ08u18uLiIgMu/b29j8758bnppctGE+ePJn169eX6+VFRESGnZl1+KWrmVpERKTMFIxFRETKTMFYRESkzMp2z9hPMpmks7OT9957r9xFkSE46KCDmDhxIqFQqNxFERGpChUVjDs7OxkzZgyTJ0/GzMpdHBkE5xw7d+6ks7OTI488stzFERGpChXVTP3ee+8xbtw4BeIqZmaMGzdOrRsiIgFUVDAGFIhrgL5DEZFgKi4Yi4iI1BsF4xxmxhe+8IX9z3t6ehg/fjwXXnghAEuXLmX8+PFMnz6dKVOmMGvWLH7961+Xq7giIlIDFIxzjB49mpdeeonu7m4AHnvsMSZMmJCV59JLL2XDhg1s27aN6667josvvpgtW7aUo7giIlIDqjoYr9zQxak3P86R1z3EqTc/zsoNXUXZ7/nnn89DDz0EwD333MPll1+eN+9ZZ53F1VdfzeLFi4vy2iIiUn+qNhiv3NDF9SvidO3qxgFdu7q5fkW8KAH5sssu49577+W9995j06ZNnHLKKf3mP/HEE3n55ZeH/LoiIlI+S5cuZenSpWV57aoNxrc8upXuZG9WWneyl1se3TrkfTc1NfHaa69xzz33cP755w+Y3zk35NcUEZH6VVGTfgTxxq7uQOlBzZkzh7//+7/nySefZOfOnf3m3bBhA8ccc0xRXldEROpP1Qbjw8Y20uUTeA8b21iU/V955ZWMHTuWSCTCk08+mTffunXrWLx4MU888URRXldEROpP1Qbj+bOmcv2KeFZTdWOogfmzphZl/xMnTmTevHm+25YtW8bTTz/N3r17OfLII3nggQdUMxYRkUErKBib2deBLwMOiANXOOfey9jeCtwCpHtP3e6cu7O4Rc02d7o33OiWR7fyxq5uDhvbyPxZU/enD9bu3bv7pM2cOZOZM2cC0NraSmtr65BeQ0REJNOAwdjMJgDzgGOdc91mthy4DFiak3WZc+5vi1/E/OZOnzDk4CsiIlJuhfamHgk0mtlIYBTwRumKJCIiUl8GDMbOuS7ge8DrwJtAwjm31ifrfzGzTWZ2v5kd7rcvM7vazNab2fodO3YMqeAiIiK1YsBgbGYfBS4CjgQOA0ab2RdyssWAyc65JuAx4P/67cs5t9g51+ycax4/fvzQSi4iIlIjCmmm/ivg9865Hc65JLAC+GxmBufcTufc+6mndwIziltMERGR2lVIMH4d+IyZjTJvodookLUqgpkdmvF0Tu52ERERya+Qe8bPAvcDL+ANaxoBLDazhWY2J5Vtnpn91sxexOt53Vqi8pZcNS+heP7557Nr165+88ycOZP169f3Sd+4cSMPP/xw4NfMtz8RESlcQb2pnXPfds4d7Zw73jn3Refc+865Bc651ant1zvnjnPOneCcO8s5V7WrJgzHEoo9PT1FLXPaww8/zNixYwf1t4MNxiIiMnRVu1AEAJuWw/ePh++M9X5vWl6U3ZZiCcXvfOc7fPGLX+TUU0/li1/8Ir29vcyfP5+TTjqJpqYmfvSjHwFw7bXXsnr1agA+97nPceWVVwLw7//+73zzm98E4Gc/+xknn3wy06ZN4ytf+Qq9vd4sZJMnT+bPf/4zAP/4j//I1KlTOe2007j88sv53ve+t78s9913HyeffDJHHXUUTz31FB988AELFixg2bJlTJs2jWXLlrFnzx6uvPJKTj75ZKZPn86qVasA6O7u5rLLLuOYY47hc5/73P6LFhGRUivVsrmVoHqD8ablEJsHie2A837H5hUlIJdqCcXNmzfzH//xH9xzzz38+Mc/JhwO8/zzz/P888+zZMkSfv/733P66afz1FNPAdDV1cXmzZsBeOqppzjjjDPYsmULy5Yt41e/+hUbN26koaGBn//851mv8/zzz/PAAw/w4osvsmbNmj7NyD09PTz33HMsWrSIG264gQMOOICFCxdy6aWXsnHjRi699FL+6Z/+ibPPPpvnnnuOJ554gvnz57Nnzx7uuOMORo0axZYtW7jhhhtob28P8tGKiAxKKZfNrQTVG4zbFkIyp1aW7PbSh6hUSyjOmTOHxkZvIYu1a9fyk5/8hGnTpnHKKaewc+dOtm3btj8Yb968mWOPPZZDDjmEN998k9/85jd89rOfpa2tjfb2dk466SSmTZtGW1sbr776atbr/OpXv+Kiiy7ioIMOYsyYMbS0tGRtv/jiiwGYMWMGr732mm9Z165dy80338y0adOYOXMm7733Hq+//jq//OUv999Tb2pqoqmpqaD3LiIyFKVcNrcSVO1CESQ6g6UHVIolFEePHr3/sXOOH/zgB8yaNatPvl27dvHII49wxhln8NZbb7F8+XIOPvhgxowZg3OOL33pS9x0003B31TKgQceCEBDQ0Pe+9fOOR544AGmTi3OwhsiIkNR6mVzy616a8bhicHSA7ryyiv59re/TSQS6TdfegnFq666CoDbb7+d22+/fcD9z5o1izvuuINkMgnAK6+8wp49ewD4zGc+w6JFizjjjDM4/fTT+d73vsfpp58OQDQa5f777+dPf/oTAG+99RYdHR1Z+z711FOJxWK899577N69m1/84hcDlmfMmDG8++67WeX7wQ9+sL/Wv2HDBgDOOOMM7r77bgBeeuklNm3aNOC+RUSGKt/yuMVaNrfcqjcYRxdAKOdLCDV66UUw0BKK06ZN46ijjuK73/1u1hKKL7/8MuPGjRtw/1/+8pc59thjOfHEEzn++OP5yle+sr+Wevrpp9PT08OnP/1pTjzxRN566639wfjYY4/lxhtv5Nxzz6WpqYlzzjmHN998M2vfJ510EnPmzKGpqYnZs2cTiUQIh8P9luess85i8+bN+ztwfetb3yKZTNLU1MRxxx3Ht771LQD+5m/+ht27d3PMMcewYMECZszQ/C4iUnrzZ02lMdSQlVbMZXPLzQq931lszc3NLrdj0ZYtW4KtC7xpuXePONHp1YijC6DpkiKXNJgLL7yQFStWcMABB5S1HLt37+bggw9m7969nHHGGSxevJgTTzxx2F4/8HcpIjKAlRu6Ai+bu3TpUoCClr4NknewzKzdOdecm16994zBC7xlDr65CmkSHg5XX301mzdv5r333uNLX/rSsAZiEZFSqOVlc6s7GEte6fu6IiJS+ar3nrGIiEiNUDAWEREpMwVjERGp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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# returns the optimized weights\n",
    "w_opt = rew.get_weights()\n",
    "\n",
    "#plt.figure(figsize=(1, 30))\n",
    "# feed the weights to plotting function\n",
    "plot(exp_couplings,calc_couplings,wopt=w_opt)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEHCAYAAAC+1b08AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dfXwU5bn/8c8FQkFBtJgiEhDaRiVKgBCCloeCgiCN4Qjlx4NaNa1REW2x9WiL2pSeth5ba0U5SkQKtgpUUITKqaIVCyiaUIFiUKAaMciBiIIiIsTcvz92mSwhD0vY3dlMvu/Xa1/cM3Nn5sqSXLn3nplrzDmHiIg0fs38DkBERGJDCV1EJCCU0EVEAkIJXUQkIJTQRUQCQgldRCQgToimk5mNAO4HmgOznHN3V9t+HzAkvHgi8DXn3Cl17fO0005zXbt2PeaARWLhkwOHvPbJrVr4GEmcHdzrNfd+XrW6Xbt2PgQjsbB27doPnXMpNW2rN6GbWXNgBjAMKAOKzGyJc67kcB/n3JSI/jcBvevbb9euXSkuLo4ifJHY63r7s167+O7v+BhJnD1hXtMur1qt+08aLzN7r7Zt0Uy5ZANbnXPvOOcOAvOBUXX0nwDMO7YQRUTkeEWT0DsB70csl4XXHcXMzgS6AX8//tBERORYxPqk6HhgoXPuy5o2mlm+mRWbWXF5eXmMDy0i0rRFc1J0O9A5Yjk1vK4m44Eba9uRc64QKATIyso6ahLv0KFDlJWVceDAgSjCEmm4R3I7AuBwvPvuu6SmptKiRYBPjkqTEE1CLwLSzKwboUQ+HphYvZOZnQOcCrza0GDKyspo27YtXbt2xczq/wKRBjpUtgcInRxs2/pLysrK6Natm89RiRyfeqdcnHMVwGTgOWAT8Bfn3JtmNs3MciO6jgfmu+M4fX7gwAHat2+vZC4JY2a0b99enwolEKK6Dt05twxYVm3dXdWWC2IRkJK5JJp+5iQodKeoiEhAKKFXY2ZcccUV3nJFRQUpKSnk5OQAMGfOHFJSUujduzdpaWkMHz6cV155xa9wRUQ8UU25NCUnnXQSGzdu5PPPP6d169YsX76cTp2OvOx+3LhxPPjggwC89NJLjB49mpdeeonu3bvHPb6KigpOOEH/bcerdYvmfoeQGKdmes3MzDr6SXw9N/XI5eG/isthNEKvwciRI3n22dCt4fPmzWPChAm19h0yZAj5+fkUFhYetW3p0qX069eP3r17M3ToUHbu3EllZSVdu3Zlz549Xr+0tDR27txJeXk5Y8aMoW/fvvTt25fVq1cDUFBQwJVXXkn//v258sorKS0tZeDAgWRmZpKZmel9QqisrGTSpEmcc845DBs2jJEjR7Jw4UIA1q5dy7e//W369OnD8OHD2bFjR8zer8YorUNb7xVol6z1XmvXVr0kmJJ6qHff8s3c/+KWqPpOyO7Mb0ZnHLHup09tYN7rVTe5/vCiNKYMO6vefY0fP55p06aRk5PDhg0byMvLY+XKlbX2z8zMZObMmUetHzBgAGvWrMHMmDVrFvfccw/33nsvo0aN4umnn+aaa67htdde48wzz6RDhw5MnDiRKVOmMGDAALZt28bw4cPZtGkTACUlJaxatYrWrVuzf/9+li9fTqtWrdiyZQsTJkyguLiYp556itLSUkpKSti1axfdu3cnLy+PQ4cOcdNNN/HMM8+QkpLCggULmDp1KrNnz47qvRWRxiGpE7pfMjIyKC0tZd68eYwcObLe/rVdqVlWVsa4cePYsWMHBw8e9K5zHjduHNOmTeOaa65h/vz5jBs3DoAXXniBkhKv5hmffPIJ+/btAyA3N5fWrVsDoRuwJk+ezLp162jevDmbN28GYNWqVYwdO5ZmzZpx+umnM2RIqADm22+/zcaNGxk2bBgAX375JR07dmzIWyMiSUwJvRa5ubn85Cc/YcWKFezevbvOvm+88UaN8+c33XQTt9xyC7m5uaxYsYKCggIALrjgArZu3Up5eTmLFy/mjjvuAEJTJmvWrKFVq1ZH7eukk07y2vfddx8dOnRg/fr1VFZW1tg/knOOc889l1dfbfA9XyLSCCR1Qp8y7Kyopkhq85vRGUdNw0QrLy+PU045hR49erBixYpa+7388ssUFhby0ksvHbVt79693gnVuXPneuvNjMsuu4xbbrmF7t270759ewAuvvhiHnjgAW699VYA1q1bR69evWrcb2pqKs2aNWPu3Ll8+WWodE7//v2ZO3cuV111FeXl5axYsYKJEydy9tlnU15ezquvvsoFF1zAoUOH2Lx5M+eee26D3psg2L3vC6/dvs1XfIwkzrZWndspjCiZl5+f70MwEm9JndD9lJqays0331zjtgULFrBq1Sr2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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# find index corresponding to the desired coupling\n",
    "idx = labels.index(\"7\")\n",
    "# plot the histogram\n",
    "plt.hist(calc_data[:,idx],bins=75,density=True,alpha=0.55)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(np.average(calc_data[:,idx]),label=\"MD average\",ls=\"--\",lw=3)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(exp_data[idx,0],c='k',label=\"experimental\",ls=\"--\",lw=3)\n",
    "\n",
    "# plot the histogram with the new weights\n",
    "plt.hist(calc_data[:,idx],bins=75,density=True,alpha=0.55,weights=w_opt)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(np.average(calc_data[:,idx],weights=w_opt),label=\"MD average, reweighted\",ls=\"--\",lw=3,c='orange')\n",
    "\n",
    "plt.xlabel(\"J coupling (Hz)\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 3. 𝜃-selection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "# theta: 0.1\n",
      "# theta: 0.5\n",
      "# theta: 1\n",
      "# theta: 2\n",
      "# theta: 3\n",
      "# theta: 4\n",
      "# theta: 5\n",
      "# theta: 7.5\n",
      "# theta: 10\n",
      "# theta: 15\n",
      "# theta: 20\n",
      "# theta: 40\n",
      "# theta: 50\n",
      "# theta: 100\n",
      "# theta: 500\n",
      "# theta: 5000\n"
     ]
    }
   ],
   "source": [
    "#this is a trick to get the parent directory \n",
    "#directory_to_bme = os.getcwd()[:-8]\n",
    "#sys.path.append(directory_to_bme)\n",
    "#import bme_reweight as bme\n",
    "\n",
    "# define name of files                                                                               \n",
    "exp_couplings = 'exp.dat'\n",
    "calc_couplings = 'sim_Charmm36m.dat'\n",
    "\n",
    "\n",
    "# initialize reweighting class                                                                                                                                \n",
    "rew = bme.Reweight()\n",
    "\n",
    "# load data                                                                                      \n",
    "rew.load(exp_couplings,calc_couplings)\n",
    "\n",
    "# do minimization for different values of theta\n",
    "thetas= [0.1,0.5,1,2,3,4,5,7.5,10,15,20,40,50,100,500,5000]\n",
    "results = []\n",
    "for t in thetas:\n",
    "    # do the minimization\n",
    "    chi2_jc_before,chi2_jc_after, srel = rew.optimize(theta=t)\n",
    "    # calculate agreement with NOE, and write output to a temporary file\n",
    "    results.append( [np.exp(srel),chi2_jc_before,chi2_jc_after])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7f1eb47df240>"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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8wsQERGRIldiQl5BOm5F5Ysvvtg1Tq506dJUrVqVyZMn06lTJ5KSkgC44IILmDRpEueee26uz3X55ZcD0L59ezZt2pRnELvgggsAOPbYY1myZAkQ/G769OkDwJFHHsnRRx8NQIMGDVi0aBG9evXirLPO4rTTTivYCxYREZFipwMvisGdd95J8+bNd3XI9kWZMmXIysradXnPOen2nMIkrylNypcvDwThMiMjI9f7Vq9endmzZ9OxY0eee+45rrvuun0pXUREREJU7CHPzCqY2XdmNtvMfjSz+3K4T3kze9vMFprZVDOrV9x1RtOgQYOYNWsWs2bNAuCUU05h6NChAGRmZrJx40batWvHBx98QHp6OmlpaYwaNYp27dpx0EEH8ccff7Bu3Tq2bdvGmDFjdnvut99+Gwi6cVWrVqVq1ar7XN8JJ5zAO++8A8C8efOYM2cOAGvXriUrK4sLL7yQ+++/n5kzZxb4dyAiIiLFK4zdtduAk919s5mVBSab2Th3/zbbff4B/OnujczsMmAwcGkItRZKRkbGrs5Zdk8++STdunVj+PDhlC5dmqFDh9KmTRs6d+6868CJ6667jhYtWgAwYMAAWrVqxSGHHELjxo13e64KFSrQokULduzYseugjX3Vs2dPrr32Wpo0aULjxo1p2rQpVatWZfny5XTp0mVXJzE1NbVAzy8iIlJSuDsPPPAARx99NOecc06otZi7h7dws0rAZOAGd5+a7fpPgXvdfYqZlQFWATU9l2KTkpI8LS1tt+vmz5/PEUccUTTF58Ps2bO5/vrr+e6774rk+Tt27MgjjzxCy5YtC/U8mZmZ7NixgwoVKvDrr79y6qmnsmDBAsqVK5evx4f9exYREYkV69evp2bNmpxzzjl88MEHRb48M0t396ScbgvlwAszKw3MABoBz2QPeBGHAL8DuHuGmW0EagBr93iebkA3IN+BpLg899xzPPXUUzzxxBNhl5Kn9PR0TjrpJHbs2IG78+yzz8bc71NERCQerFixAjPjb3/7W9ilhBPy3D0TaG5m1YBRZnaku+c+90fOzzMMGAZBJy/KZRZKjx49inwi4gkTJkTlefbbbz+mT58elecSEREpyVasWAEQEyEv1KNr3X0D8CVw+h43LQfqAER211YF1hVwGYUpUfKg36+IiMh/rVixAncvmSHPzGpGOniYWUXg/4Cf9rjbaODayP8vAr7IbTze3lSoUIF169YpiBQRd2fdunVUqFAh7FJERERiQix18sLYXVsLeCUyLq8U8I67jzGzgcB0dx8NDAdeM7OFwHrgsoIsqHbt2ixbtow1a9ZEq3bZQ4UKFahdu3bYZYiIiMSE5cuXAyU05Ln7D0CLHK4fkO3/W4GLC7ussmXLUr9+/cI+jYiIiEi+xFInT2e8EBEREYmSFStWULZsWWrUqBF2KQp5IiIiItGycuVKatWqledpRouDQp6IiIhIFGRlZbFq1Spq1aoVdimAQp6IiIhIVKxZs4bMzMyYGI8HCnkiIiIiURFLB12AQp6IiIhIVCjkiYiIiCQghTwRERGRBKSQJyIiIpKAFPJEREREEpBCnoiIiEgCWrFiBZUqVaJq1aphlwIo5ImIiIhExapVqzj44INj4mwXoJAnIiIiUmgZGRmsXr06ZnbVgkKeiIiISKGtXr0ad1fIExEREUkksXbQBSjkiYiIiBSaQp6IiIhIAlqxYgVmppAnIiIikkjUyRMRERFJQAp5IiIiIgloZ8irVatWyJX8l0KeiIiISCGtWLGC/fbbj8qVK4ddyi4KeSIiIiKFtPNsF7FEIU9ERESkELZt28batWtjajweKOSJiIiIFMqqVauA2DroAhTyRERERAolFo+sBYU8ERERkUJRyBMRERFJQAp5IiIiIglIIU9EREQkASnkiYiIiCSg5cuXAwp5IiIiIgllxYoV1KhRg/Lly4ddym4U8kREREQKIRbPdgEKeSIiIiIFlpaWxsaNG2NuVy0o5ImIiIgU2MqVK4HYG48HCnkiIiIiBRarR9aCQp6IiIhIgSnkiYiIiCQghTwRERGRBDNy5Ejuu+8+AG644QZGjhwZckW7KxN2ASIiIiLxZuTIkXTr1o309HRKlSrFqlWr6NatGwBXXnllyNUFzN3DriEqkpKSPC0tLewyREREpASoV68ev/32GwClSpUiKysLgOTkZJYsWVJsdZhZursn5XibQp6IiIjIvilVqhTuTunSpcnMzNx1vZntCnzFIbeQpzF5IiIiIvuoTp06OV5ft27dYq5k7xTyRERERPbR5Zdf/j9dvEqVKjFo0KAQq9qdQp6IiIjIPnB3Jk+ejLtTq1YtzIzk5GSGDRsWMwddgI6uFREREdknX3zxBd9++y1nnXUWo0ePDrucvVInT0RERCSf3H3X3Hj33HNPyNXkTiFPREREJJ+++uorvv76a04//XSOPfbYsMvJlUKeiIiISD7t7OINGDAg5EryppAnIiIikg8TJ05k0qRJnHbaabRq1SrscvKkkCciIiKSD/EyFm8nhTwRERGRPEyePJkJEyZwyimn0Lp167DLyReFPBEREZE8DBw4EDOLmy4ehBDyzKyOmX1pZvPM7Ecz65PDfTqa2UYzmxX5if3RjSIiIpKQpkyZwhdffEHHjh1p27Zt2OXkWxiTIWcAt7r7TDPbD5hhZp+7+7w97jfJ3c8OoT4RERGRXeJtLN5Oxd7Jc/eV7j4z8v+/gPnAIcVdh4iIiEhepk6dyueff0779u1p165d2OXsk1DH5JlZPaAFMDWHm9uY2WwzG2dmTffy+G5mNt3MpmdkZBRhpSIiIlISxeNYvJ3M3cNZsFll4CtgkLv/e4/bqgBZ7r7ZzM4EnnT3Q3N7vqSkJE9LSyu6gkVERKREmTZtGm3atOGEE07gq6++CrucHJlZursn5XRbKJ08MysLvA+M3DPgAbj7JnffHPn/WKCsmR1QzGWKiIhICTZw4EAg/sbi7RTG0bUGDAfmu/tje7nPwZH7YWatCOpcV3xVioiISEk2c+ZMxo4dS5s2bTjppJPCLqdAwji69gTgamCOmc2KXNcfqAvg7s8BFwE3mFkGsAW4zMParywiIiIlzs6xeAMGDCDSd4o7oY3JizaNyRMREZFomDVrFi1btqRVq1Z8/fXXMR3yYm5MnoiIiEis+te//oW7c88998R0wMuLOnkiIiIiET/88AMtWrTguOOOY8qUKTEf8tTJExEREcmHf/3rX3E/Fm8ndfJEREREgLlz59K8eXNatGjBd999FxchT508ERERkTzcf//9CTEWbyd18kRERKTEmzdvHkcffTTNmjVj+vTpcRPy1MkTERERycX9998PkBBj8XZSJ09ERERKtJ9++okjjzySo446ipkzZ8ZVyFMnT0RERGQvBg0ahLsnVBcP1MkTERGREuznn3+madOmNGnShO+//55SpeKr/6VOnoiIiEgOdnbx7r777rgLeHlRJ09ERERKpIULF9KkSRMOP/xwZs+eHZchT508ERERkT088MADZGZmJmQXD9TJExERkRJo0aJFNG7cmEaNGjFnzhxKly4ddkkFok6eiIiISDbZu3jxGvDyok6eiIiIlChLlizh8MMPp0GDBsydOzeuQ546eSIiIiIRqampZGRkcNddd8V1wMuLOnkiIiJSYixdupTDDjuMunXrMm/ePMqUKRN2SYWiTp6IiIgIu3fx4j3g5UWdPBERESkRfv/9dw499FDq1KnD/PnzEyLkqZMnIiIiJd7gwYPZsWMHd955Z0IEvLyokyciIiIJb/ny5TRq1IhatWqxYMECypYtG3ZJUaFOnoiIiJRo2bt4iRLw8qJOnoiIiCS0lStX0rBhQw466CB+/vnnhAp56uSJiIhIifXQQw+xbds2+vfvn1ABLy/q5ImIiEjCWnakQ88AACAASURBVLVqFQ0bNqRmzZr8/PPPlCtXLuySokqdPBERESmRHn74YbZt20a/fv0SLuDlRZ08ERERSUh//PEH9evXp0aNGvzyyy+UL18+7JKiTp08ERERKXEeeeQRtm7dSt++fRMy4OVFnTwRERFJOGvWrKF+/fpUq1aNhQsXUqFChbBLKhLq5ImIiEiJ8uijj7Jlyxb69u2bsAEvL+rkiYiISEJZu3Yt9evXp0qVKvz6668JHfLUyRMREZES4/HHHyc9PZ3bb789oQNeXtTJExERkYSxfv166tevT6VKlVi0aBEVK1YMu6QipU6eiIiIlAiPP/44mzdv5vbbb0/4gJcXdfJEREQkIfz555/Ur1+fChUqsGjRIipVqhR2SUVOnTwRERFJeE8++SR//fUXt956a4kIeHlRJ09ERETi3oYNG6hfvz5ly5Zl8eLFJCXl2NxKOOrkiYiISEJ76qmn2LRpE7feemuJCXh5USdPRERE4tqmTZuoV68epUuXZvHixVSuXDnskoqNOnkiIiKSsJ5++mk2btzIzTffXKICXl7UyRMREZG49ddff1G/fn3cncWLF1OlSpWwSypW6uSJiIhIQhoyZAh//vknN998c4kLeHlRJ09ERETi0ubNm6lfvz6ZmZksXryYqlWrhl1SsVMnT0RERBLOs88+y/r16+nTp0+JDHh5USdPRERE4k5aWhoNGjRg+/btLF68mGrVqoVdUijUyRMREZGE8txzz7F27Vp69+5dYgNeXtTJExERkbiSnp5OgwYN2LJlC4sXL2b//fcPu6TQqJMnIiIiCeP5559nzZo19OrVq0QHvLyokyciIiJxY8uWLTRs2JDNmzezePFiatSoEXZJoVInT0RE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ERH5r++//542bdrw008/8c9//pP33ntPAa8EilrIExERkfCNGzeO9u3bs3r1ah555BGefPJJTZFSQinkiYiIJIhhw4Zx3nnnkZmZydtvv81NN90UdkkSIoU8ERGROJeVlUX//v254YYbqFatGuPHj+fCCy8MuywJWZmwCxAREZGC27ZtG126dOHtt9+mQYMGjBs3jkaNGoVdlsQAhTwREZE49eeff9KpUycmTZrE8ccfz+jRoznggAPCLktihHbXioiIxKElS5ZwwgknMHnyZDp16sT48eMV8GQ3CnkiIiJxZvr06bRp04YFCxbQp08f3nnnHSpWrBh2WRJjFPJERETiyJgxY+jYsSNr1qzh8ccf59FHH6VUKX2cy//SWiEiIhInhg4dSqdOnXB33nvvPXr37h12SRLDdOCFiIhIjMvKyqJfv348+uijHHDAAXz00Ue0atUq7LIkxinkiYiIxLCtW7dy7bXX8v7779OoUSPGjRtHgwYNwi5L4oBCnoiISIxat24d559/PlOmTKFNmzZ88MEH1KhRI+yyJE5oTJ6IiEgMWrRoEW3btmXKlClceOGFfP755wp4sk8U8kRERGLMd999R5s2bVi4cCG33HILb775JhUqVAi7LIkz2l0rIiISQz788EOuuOIKtm/fztNPP03Pnj3DLknilDp5IiIiMWLIkCFccMEFmBmjRo1SwJNCUSdPREQkZFlZWdx+++088cQT1KxZkzFjxtCyZcuwy5I4p5AnIiISoi1btnD11VfzwQcfcNhhhzFu3Djq1asXdlmSABTyREREQrJ27VrOPfdcpk6dyoknnsgHH3xA9erVwy5LEoTG5ImIiIRg4cKFtGnThu+++45LL72Uzz77TAFPokohT0REpJhNmTKFtm3bsmjRIu644w5ef/11ypcvH3ZZkmC0u1ZERKQY/fvf/+aqq64iIyODoUOH0q1bt7BLkgSlTp6IiEgxeeKJJ7j44ospXbo0H374oQKeFCl18kRERIpYZmYmt9xyC0OGDOHAAw/k448/5phjjgm7LElwCnkiIiJFKD09nSuvvJKPPvqIxo0bM3bsWJKTk8MuS0oAhTwREZEi8scff3Duuecyffp02rdvz7///W+qVasWdllSQmhMnoiISBH4+eefadOmDdOmTePyyy/nk08+UcCTYqWQJyIiEmVff/01bdu2ZcmS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yrRp0wA46aSTSElJ4eSTT8bMQq5QJHHlduCFOnkiIlIgGRkZvPXWWzz44IPMnz8fgHPPPZeUlBRatWoVcnUiopAnIiL7ZMuWLbz00ks8/PDDLF26lNKlS3PVVVfRt29fmjRpEnZ5IhKhkCciIvmyceNGhg4dyhNPPMGaNWsoX748N9xwA7fddhv16tULuzwR2YNCnoiI5OqPP/7gySef5Nlnn2Xjxo1UqVKFvn370qdPHw466KCwyxORvVDIExGRHP3222888sgjDB8+nK1bt1KzZk0eeOABbrjhBqpWrRp2eSKSB4U8ERHZzfz583nwwQd56623yMjIoE6dOtx+++107dqVihUrhl2eiOSTQp6IiAAwbdo0UlNTGT16NO5O48aN6devH5dddhlly5YNuzwR2UcKeSIiJZi788UXX5CamsqXX34JQMuWLenfvz/nnHPOrgmMRST+KOSJiJRAWVlZjB49ercJjE855RRSUlI46aSTNIGxSAJQyBMRKUF27NjBm2++yeDBg3dNYHz++eeTkpLCcccdF3J1IhJNCnkiIiXAli1bGDFiBA8//DC///47ZcqU4ZprrqFv374cccQRYZcnIkVAIU9EJIFt3LiRZ599lieffJI1a9ZQoUIF/vnPf3LrrbeSnJwcdnkiUoQU8kREEtDq1at54oknGDp0KH/99RdVqlShX79+9OnThwMPPDDs8kSkGCjkiYgkkCVLlvDwww/z0ksvsXXrVg488EBSUlLo0aOHJjAWKWEU8kREEsCPP/7I4MGDefPNN8nMzCQ5OZk77riDzp07awJjkRJKIU9EJI5NnTqV1NRUPvroIwCOOOKIXRMYlymjTbxISaYtgIhInHF3xo8fT2pqKhMmTADguOOOo3///px99tmawFhEAIU8EZG4kZWVxQcffEBqaiozZ84E/juBcceOHTWBsYjsRiFPRCTG7dixg5EjRzJ48GAWLFiAmdGpUyf69etHy5Ytwy5PRGKUQp6ISIxKT09n+PDhPPLII7smMO7cuTN33HEHjRs3Drs8EYlxCnkiIjFmw4YNPPPMMzz11FOsXbuWChUq0KtXL2699Vbq1q0bdnkiEicU8kREYsSqVat2m8C4atWq9O/fn969e1OzZs2wyxOROKOQJyISssWLF++awHj79u3UrFmTO++8kx49elClSpWwyxOROKWQJyIS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\n",
      "text/plain": [
       "<Figure size 720x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#handling tickers in logspace is a abit painful\n",
    "from matplotlib.ticker import NullFormatter\n",
    "from matplotlib import ticker\n",
    "\n",
    "results = np.array(results)\n",
    "# define the figure\n",
    "fig, ax1 = plt.subplots(figsize=(10, 8))\n",
    "plt.subplots_adjust(left=0.15, right=0.95, top=0.83, bottom=0.12)\n",
    "# plot j couplings\n",
    "ax1.plot(results[:,0],results[:,2],label=\"J-couplings\",c='k',lw=1.75)\n",
    "# plot NOE\n",
    "#ax1.plot(results[:,0],results[:,4],label=\"NOE\",c='#C1CDCD',ls=\"--\",lw=1.75)\n",
    "# set tickers\n",
    "ax1.set_xticks([0.01,0.1,0.2,0.5,1.0])\n",
    "ax1.xaxis.set_major_formatter(ticker.ScalarFormatter())\n",
    "ax1.xaxis.set_major_formatter(ticker.FormatStrFormatter(\"%3.1f\"))\n",
    "ax1.xaxis.set_minor_formatter(ticker.NullFormatter())\n",
    "\n",
    "# now make a new axis just to show the theta values\n",
    "ax2 = ax1.twiny()\n",
    "ax2.plot(results[:,0],results[:,2],c='w',lw=0.01)\n",
    "\n",
    "# draw ticks at selected theta\n",
    "#sele = [0.1,1,2,5,10,5000]\n",
    "sele = [1,2,3,4,5,7.5,10,15,20,40,50,100,500]\n",
    "iis = [thetas.index(s) for s in  sele]\n",
    "ax2.set_xticks(results[iis,0])\n",
    "ax2.set_xticklabels([\"%.1f\"% s for s in sele],rotation=60)\n",
    "#ax1.scatter(results[iis,0],results[iis,4],c='#C1CDCD')\n",
    "ax1.scatter(results[iis,0],results[iis,2],c='k')\n",
    "\n",
    "ax1.set_xlabel(\"Neff\")\n",
    "ax2.set_xlabel(r\"$\\theta$\")\n",
    "ax1.set_ylabel(r\"$\\chi^2$\")\n",
    "ax1.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Lower the $\\theta$ value, lower will be the $\\chi^2$, but $N_{eff}$, the number of effective frames would be also less. So, we need to make a balance between the two. Here we choose $\\theta = 10$. Another possibility would have been to cross-validate with another experimental quantity which is not used for training (like Chemical shifts, but we would need the sigma values to calculate the $\\chi^2$ for it."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## choose $\\theta = 10$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "# theta: 10\n",
      "# CHI2 before minimization:       3.0520\n",
      "# CHI2 after minimization:        0.1646\n",
      "# Fraction of effective frames:   0.3988\n"
     ]
    }
   ],
   "source": [
    "# do optimization using theta=2                                                                                                                               \n",
    "chi2_before,chi2_after, srel = rew.optimize(theta=10)\n",
    "\n",
    "print (\"# CHI2 before minimization:     %8.4f\" % (chi2_before))\n",
    "print (\"# CHI2 after minimization:      %8.4f\" % (chi2_after))\n",
    "print (\"# Fraction of effective frames: %8.4f\" % (np.exp(srel)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "29979\n"
     ]
    },
    {
     "data": {
      "image/png": "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6qmnePTRR5k/fz7bt2/ntttuY88992T9+vVcc801rFq1yuetFREZkTC3zY2C+Abj9muhN69W1tsTpI9SWFsonnnmmTQ0BBtZrFixgu9///vMmDGDY489li1btvDcc88NBON169Zx2GGHse+++/Lqq6/ym9/8hk9+8pO0t7ezatUqjj76aGbMmEF7ezvPP//8oNf51a9+xVlnncUee+zB3nvvTXNz86Dnzz77bACOOuooXnzxxYJlXbFiBQsXLmTGjBnMmTOHd955h5deeolf/vKXA33qTU1NNDU1lfS3i4iMRpjb5kZBbDeKoLvTL91TGFsoTpgwYeC+c45vfvObzJ07d5d8W7du5aGHHuKEE07g9ddf5+6772avvfZi7733xjnH5z//eW644Qb/Pypj9913B6Curq5o/7Vzjvvuu4/p08uz8YaIyGiEvW1upcW3Zpxo9Ev3dOGFF3L11VeTTCaHzJfdQvHv/u7vALj11lu59dZbhz3+3Llzue222+jt7QXg97//Pdu3bwfg4x//OK2trZxwwgkcf/zx3HTTTRx//PEApFIp7r33Xv7yl78A8Prrr7Np06ZBxz7uuONoa2vjnXfeYdu2bfzkJz8Ztjx77703b7311qDyffOb3xyo9Xd0dABwwgkncOeddwLw7LPPsnbt2mGPLSIyWsW2xy3XtrmVFt9gnFoA9XkfQn1DkF4Gw22hOGPGDD760Y9y/fXXD9pCccOGDUyaNGnY41900UUcdthhHHnkkXzsYx/jC1/4wkAt9fjjj6evr48Pf/jDHHnkkbz++usDwfiwww7juuuu49RTT6WpqYlTTjmFV199ddCxjz76aM4880yampo47bTTSCaTJBKJIctz0kknsW7duoEBXF/+8pfp7e2lqamJww8/nC9/+csA/P3f/z3btm3j0EMPZcGCBRx1lNZ3EZHwzZ87nYb6ukFp5dw2t9Ks1P7Ocps1a5bLH1i0fv16v32B194d9BF3dwY14tQCaDqnzCX1c8YZZ7B06VJ22223ipZj27Zt7LXXXrz99tuccMIJLFq0iCOPPHLMXt/7sxQRGcayji7vbXMXL14MUNLWtz55R8rMVjnnZuWnx7fPGILAW+Hgm6+UJuGxcPHFF7Nu3TreeecdPv/5z49pIBYRCUM1b5sb72AsRWX7dUVEJPri22csIiJSJRSMRUREKkzB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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# returns the optimized weights\n",
    "w_opt = rew.get_weights()\n",
    "\n",
    "# feed the weights to plotting function\n",
    "plot(exp_couplings,calc_couplings,wopt=w_opt)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# find index corresponding to the desired coupling\n",
    "idx = labels.index(\"7\")\n",
    "# plot the histogram\n",
    "plt.hist(calc_data[:,idx],bins=75,density=True,alpha=0.55)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(np.average(calc_data[:,idx]),label=\"MD average\",ls=\"--\",lw=3)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(exp_data[idx,0],c='k',label=\"experimental\",ls=\"--\",lw=3)\n",
    "\n",
    "# plot the histogram with the new weights\n",
    "plt.hist(calc_data[:,idx],bins=75,density=True,alpha=0.55,weights=w_opt)\n",
    "# make vertical bar corresponding to the MD average\n",
    "plt.axvline(np.average(calc_data[:,idx],weights=w_opt),label=\"MD average, reweighted\",ls=\"--\",lw=3,c='orange')\n",
    "\n",
    "plt.xlabel(\"J coupling (Hz)\")\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4. Structural interpretation $(\\theta = 10)$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "main_dir = '/media/argha/Argha_HDD/HiWi_Prof_strodel/jupyter_work/Suman_5_08/deshaw_ss/DEshaw-ab40/'\n",
    "force_name = 'Charmm36m'\n",
    "\n",
    "force_dir = main_dir + force_name + '/pnas2018b-Ab40-'+ force_name +'-protein'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "traj = md.load(force_dir + '/traj_concatenated.dcd',top= force_dir + '/ab40-desres.pdb')\n",
    "ref = md.load(force_dir + '/ab40-desres.pdb')\n",
    "\n",
    "rmsds = md.rmsd(traj,ref)\n",
    "bb = np.histogram(rmsds,bins=100,density=True)\n",
    "cc = np.array(bb)[0]/sum(np.array(bb)[0])\n",
    "\n",
    "bb1 = np.histogram(rmsds,bins=100,weights= w_opt[1:],density=True,)\n",
    "cc1 = np.array(bb1)[0]/sum(np.array(bb1)[0])\n",
    "\n",
    "plt.plot(np.array(bb)[1][0:-1],cc,linestyle='-',color = 'blue',linewidth = 2,label=\"MD\")\n",
    "plt.plot(np.array(bb1)[1][0:-1],cc1,linestyle='-',color = 'red',linewidth = 2, label=\"MD reweighted\")\n",
    "\n",
    "plt.legend()\n",
    "plt.xlabel(\"RMSD (nm)\")\n",
    "plt.ylabel(\"Prob density\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3xUZdbA8d9JQhJ6SUKRUKUJgnREQcEGIsKqIOjq6lpQ1752XXWtr21x7djWrqiUlVUUVEQUFanSew0iJdRAQtp5/3juhCFMwgRmMpPkfD+fce7ce+fOmWGck6eLqmKMMcYUFhPpAIwxxkQnSxDGGGMCsgRhjDEmIEsQxhhjArIEYYwxJqC4SAcQKsnJydq0adNIhxHddi9z9zVas8zbbN06cuEYYyJv9uzZ21Q1JdCxcpMgmjZtyqxZsyIdRnT7po+7P2MqfbzNqVMjFIsxJiqIyLqijoW1iklE+ovIMhFZKSJ3BzieICIfe8dniEhTv2MdRORnEVkkIgtEJDGcsRpjjDlY2BKEiMQCLwFnA22Bi0SkbaHTrgR2qGoL4FngSe+5ccD7wLWq2g7oA+SEK1ZjjDGHCmcJojuwUlVXq2o2MBoYXOicwcA73vYY4HQREeAsYL6q/gagqumqmhfGWI0xxhQSzjaIhsAGv8dpQI+izlHVXBHZBSQBrQAVkUlACjBaVZ8q/AIiMgIYAdC4ceOQvwFjzMFycnJIS0sjKysr0qGYEkpMTCQ1NZVKlSoF/ZxobaSOA3oB3YB9wLciMltVv/U/SVVfA14D6Nq1q00qZUyYpaWlUb16dZo2bYor7JuyQFVJT08nLS2NZs2aBf28cFYxbQQa+T1O9fYFPMdrd6gJpONKG9NUdZuq7gMmAp3DGKsxJghZWVkkJSVZcihjRISkpKQSl/zCmSBmAi1FpJmIxAPDgQmFzpkAXOZtDwGmqJtedhLQXkSqeInjVGBxGGM1xgTJkkPZdCT/bmGrYvLaFG7A/djHAv9R1UUi8jAwS1UnAG8C74nISmA7LomgqjtEZCQuySgwUVW/CFesIfPQQ1CpEtx7b6QjMcaYoxbWcRCqOlFVW6nqsar6mLfvAS85oKpZqjpUVVuoandVXe333PdVtZ2qHq+qd4YzzpDIzIR//hPuuw8yMiIdjTHllohwySWXFDzOzc0lJSWFgQMHAvD222+TkpJCp06daNmyJf369eOnn36KVLhlms3FFCpbtx7YXr48cnEYU85VrVqVhQsXkpmZCcDXX39Nw4YNDzpn2LBhzJ07lxUrVnD33Xdz/vnns2TJkkiEW6ZZggiVbdsObPsmOjLGhMWAAQP44gtX6/zRRx9x0UUXFXlu3759GTFiBK+99lpphVduWIIIFf8EsXRp5OIwppSIhOcWjOHDhzN69GiysrKYP38+PXoUHmJ1sM6dO7PU/r8sMUsQoWIJwphS06FDB9auXctHH33EgAEDDnu+6xxpSipaB8qVPf5tEJYgTAUQ6d/cQYMGcfvttzN16lTS09OLPXfu3Lkcd9xxpRRZ+WEJIlT8SxDLl0N+PsRYAc2YcLniiiuoVasW7du3Z2ox89Z///33vPbaa3z33XelF1w5YQkiVPwTRFYWrF8PtoCRMWGTmprKTTfdFPDYxx9/zI8//si+ffto1qwZY8eOtRLEEbAEESr+CQJcNZMlCGNCLiPAOKM+ffrQx1sF6/LLL+fyyy8v3aDKKasDCRVfG4RvDU9rhzDGlHGWIELFV4I4+WR3b2MhjDFlnCWIUPEliF693L2VIIwxZZwliFBQPbQEYQnCGFPGWYIIhZ07IS8PatSAFi2gcmX44w/YtSvSkRljzBGzBBEKvtJDcrIb+9CqlXts7RDGmDLMEkQo+CcIgDZt3L1VMxkTcmVtuu+TTjrpsOc0bdqUbYW7ygNTp049otiLul5JWYIIBd8/REqKu7cEYUzYhGu679zc3LDEezTJ6UgTRKhYgggF3xgIK0EYUypCNd335ZdfzrXXXkuPHj2488472bt3L1dccQXdu3enU6dOfPbZZwCcc845zJ8/H4BOnTrx8MMPA/DAAw/w+uuvA/D000/TrVs3OnTowIMPPljwGtWqVQMgPz+fv/3tb7Rp04YzzzyTAQMGMGbMmILzXnjhBTp37kz79u1ZunQpa9euZdSoUTz77LN07NiRH374ga1bt3LBBRfQrVs3unXrxvTp0wFIT0/nrLPOol27dlx11VUhm5zQEkQoFFXFZG0QpjyL4HzfoZzuOy0tjZ9++omRI0fy2GOPcdppp/Hrr7/y3Xffcccdd7B371569+7NDz/8wK5du4iLiyv4Yf7hhx845ZRTmDx5MitWrODXX39l3rx5zJ49m2nTph30OuPGjWPt2rUsXryY9957j59//vmg48nJycyZM4frrruOZ555hqZNm3Lttddy6623Mm/ePHr37s3NN9/MrbfeysyZMxk7dixXXXUVAA899BC9evVi0aJFnHfeeaxfvz6oz/FwbKqNUCicIFq2dPcrVkBuLsTZx2xMKIVyuu+hQ4cSGxsLwOTJk5kwYQLPPPMMAFlZWaxfv57evXvz/PPP06xZM8455xy+/vpr9u3bx5o1a2jdujWvv/46kydPplOnToCbDmTFihWccsopBa/z448/MnToUGJiYqhfvz59+/Y9KI7zzz8fgC5dujBu3LiAsX7zzTcsXry44PHu3bvJyMhg2rRpBc8555xzqF279mE/k2DYL1coFG6DqFoVjjkGfv/d3Ro3jlxsxoRLhOf7DtV031WrVi3YVlXGjh1La9+UOZ7s7GxmzZpF8+bNOfPMM9m2bRuvv/46Xbp0KXjePffcwzXXXHPE7ychIQGA2NjYIttD8vPz+eWXX0hMTDzi1ykJq2IKhcJtEACNGrn7tLTSj8eYCuCKK67gwQcfpH379sWe55vu++qrrz7sNfv168cLL7xQUOKYO3cuAPHx8TRq1IhPP/2Unj170rt3b5555pmCEkK/fv34z3/+UzCR4MaNG9myZctB1z755JMZO3Ys+fn5bN68udgpyn2qV6/Onj17Ch6fddZZvPDCCwWP582bB8App5zChx9+CMCXX37Jjh07DnvtYFiCCAWvBLE7Ppnt2719qanufsOGyMRkTDl3uOm+O3bsSKtWrXj88ceDnu77/vvvJycnhw4dOtCuXTvuv//+gmO9e/embt26VK5cmd69e5OWlkbv3r0B98N98cUX07NnT9q3b8+QIUMO+mEHuOCCC0hNTaVt27ZccskldO7cmZo1axYbz7nnnsv48eMLGqmff/55Zs2aRYcOHWjbti2jRo0C4MEHH2TatGm0a9eOcePG0ThEtRZSXpbi69q1q86aNSsyL96yJaxcyekNl7I2oTXLl0PsbbfAc8/BM8/AbbdFJq7Cvunj7s+YijczMkH8EWNMgSVLlti6CkchIyODatWqkZ6eTvfu3Zk+fTr169cvtdcP9O8nIrNVtWug860NIhS8EsTcjSnsAJYsgeN9JQirYjLGeAYOHMjOnTvJzs7m/vvvL9XkcCTCmiBEpD/wHBALvKGqTxQ6ngC8C3QB0oFhqrpWRJoCSwBfP9FfVPXacMZ6xHJyYOdONCaGnfm1AJgxwxKEMeZQwbQ7RJOwtUGISCzwEnA20Ba4SETaFjrtSmCHqrYAngWe9Du2SlU7erfoTA4AXu+J/dWSUO/jnDEDa6Q25VZ5qZauaI7k3y2cjdTdgZWqulpVs4HRwOBC5wwG3vG2xwCniwQ5UiZaeNVL+yof6ME0YwbWSG3KpcTERNLT0y1JlDGqSnp6eom7x4aziqkh4P/rmAYUHu5YcI6q5orILiDJO9ZMROYCu4F/qOoPYYz1yHkJYmellIJdCxdCRvUGVBOBTZtssJwpN1JTU0lLS2Orr2u3KTMSExNJ9f3hGqRo/dXaBDRW1XQR6QL8V0Taqepu/5NEZAQwAghZt67Dys+HESOgWze45pqCBLGN5INOmbMwnlPq1XPrQvzxx4EShTFlWKVKlWjWrFmkwzClJJxVTBuBRn6PU719Ac8RkTigJpCuqvtVNR1AVWcDq4BWhV9AVV9T1a6q2jUlJaXw4fBYtAjefBNuvRUyMgoGyf2R6xKEbymIg6qZrB3CGFMGhTNBzARaikgzEYkHhgMTCp0zAbjM2x4CTFFVFZEUr5EbEWkOtARWhzHW4PlGKGZmwv/+V1CC2JDpEsQFF7jDBzVUWzuEMaYMCluCUNVc4AZgEq7L6iequkhEHhaRQd5pbwJJIrIS+Dtwt7f/FGC+iMzDNV5fq6rbiQb+y4iOHl2QINZkuBLMQQnCShDGmDIsrG0QqjoRmFho3wN+21nA0ADPGwuMDWdsR2znzgPbX34JZ5wBwB95ydSpA506uaWp09Jgd41UaoAlCGNMmWRzMZWUfwkiJwcmTQJcI3VqqluSuls3d3j5PitBGGPKLksQJeUrQRxzjLvPzwcOJAgA39ols7fYYDljTNllCaKkfCWISy89aGzDVlIK2qS7d3f336+ywXLGmLLLEkRJ+UoQzZtDv34FuwOVICYt8EoZv/8OeXmlGKQxxhw9SxAl5StB1KwJw4cDkB2byD6qFCSI+vVdD9ftexPITarrksPmzREK2BhjjowliJLylSBq1YLBg6F5c+bW7APIQYOlvaVp2V3dGqqNMWWTJYiS8i9BVK8OS5dySW3Xk9c/QXTu7O5/j7PBcsaYsskSREn5lyAAjatE2kY3AW3DhgdO85UgVmZaCcIYUzZZgigp/xIEsH07ZGUdKFD4+EoQv223BGGMKZssQZSUrwThJQjf737hyVobNoTkZFhhJQhjTBllCaIksrJg/36oVAkqVwaKThAirhSRhiUIY0zZZAmiJPyrl7yF73xtz4GWe+jUCTZgjdTGmLLJEkRJ+BKE10ANRZcgwCWIjXgt1xs3FkzLYYwxZYEliJIo1P4AxSeIzp1hP4mkxyS7ZUe//74UgjTGmNCwBFESJSxBHHus69n0ab63SMSAATB+fJiDNMaY0LAEURLFlCAaNTr09JgY6NgRbuBF1g+4xjVyX3ABvPhiKQRrjDFHxxJESRQqQagWX4IA1w6RRxwfnPwKPPqoe9KNN8KyZaUQsDHGHDlLECXhJQitUZMpU2DQINi7F6pVc6vIBeIbMDdnrsB997lqJoCFC0shYGOMOXJhXXK03PGqmN4YU4sR/3a7EhLg7rsLer0ewjflxty53o7mzd39unXhi9MYY0LAEkRJeCWIhWk1qVoV7roLrr0WUlKKfspxx7kksmoV7NgBtZs0cQcsQRhjopxVMZWEV4LYSS06doT77y8+OYAbdH3SSW579GjAEoQxpoywBFESXgliFzWLbHMI5Jpr3P3LL4M2LiJBfPMNnHsu/PFHCAI1xpijZwmiJPxKEH49XQ/rvPOgXj3XLv3r5iISxPPPw+efwxdfhChYY4w5OpYgSuIISxDx8XDVVW77uY/qQmKia5DYs+fASUuXuvtt20IUrDHGHB1LECXhV4IoSYIAGDHCDZwbM1bIbdjY7fSVIvbvh9Wr3XZ6eoiCNcaYoxPWBCEi/UVkmYisFJG7AxxPEJGPveMzRKRpoeONRSRDRG4PZ5xBO8ISBEDjxjBwIOTkwAYpVM20ahXk5bltK0EYY6JE2BKEiMQCLwFnA22Bi0SkbaHTrgR2qGoL4FngyULHRwJfhivGEsnPL0gQu6lR4gQBcN117v6XTYUShK96CawEYYyJGuEsQXQHVqrqalXNBkYDgwudMxh4x9seA5wu4oacicifgDXAojDGGLyMDFAlM64aecQdUYI46yw3gd+ivYUShP+0G1aCMMZEiXAmiIaA/yo5ad6+gOeoai6wC0gSkWrAXcBDxb2AiIwQkVkiMmvr1q0hCzwgr/1hX5zrvnQkCSImBm64AdZhJQhjTPSL1kbqfwLPqmpGcSep6muq2lVVu6YcbsTa0fJVL8W6ifqOJEEAXHEFbK3sEsTexQEShJUgjDFRIpxTbWwE/CfBTvX2BTonTUTigJpAOtADGCIiTwG1gHwRyVLVyM2T7ZUgdsuRlyB8z+s5vAm8BTkr17rZXf0TxI4drsE6NvYoAzbGmKMTzhLETKCliDQTkXhgODCh0DkTgMu87SHAFHV6q2pTVW0K/Bt4PKLJAQpKEDv06EoQAJfe3ZBcYqmV+QdbZ62D3buhdm23zkR+/oF1J4wxJoLCliC8NoUbgEnAEuATVV0kIg+LyCDvtDdxbQ4rgb8Dh3SFjRrej/aOvKMrQQA0bxXH9squOebnh792O9u0OTCxk1UzGWOiQFhnc1XVicDEQvse8NvOAoYe5hr/DEtwJeWVILbluhJESabaCCS+ZROYvx6ZPAmA7GPbEJ+fDytXWkO1MSYqRGsjdfTxShDbcmsiAlWrHt3lanZwDdW9sr8F4P732/Dj0mR30EoQxpgoYAkiWF4JwjfNRlELBAVLvGm/a+MSz/KYNqzaleQOWgnCGBMFDpsgRGS2iFwvIrVLI6CodRTTbATUtOlBDwfe1pptWAnCGBM9gilBDAOOAWaKyGgR6ecb7VyhHMVEfQH5Fg4CiIujXs/mpGMlCGNM9DhsglDVlap6H9AK+BD4D7BORB4SkTrhDjBqhLoE4Z8gWrSgVbtKVoIwxkSVoNogRKQD8C/gaWAsrufRbmBK+EKLMqEuQTRufGC7TRuaNYOdMa4EkbvFShDGmMg7bDdXEZkN7MSNWbhbVfd7h2aIyMnhDC6q+JUgGoUiQSQmumXmNm+GNm2oVAkSGibDBshK20a1ELyEMcYcjWDGQQxV1dX+O0SkmaquUdXzwxRX9Al1CQJcNdPmzdC6NQC1jk2CDZBnJQhjTBQIpoppTJD7yrdQt0EADBkCDRvC6acDkHKca4OI22ltEMaYyCuyBCEibYB2QE0R8S8p1AASwx1YVMnOhsxM8mLi2JdfJXQJ4o473M3T6ATX5l95X7qbkynGhqkYYyKnuCqm1sBA3Gyq5/rt3wNcHc6goo5XesiMrwlZctTTbBSlRdt4dlGDmrrbvWbtij30xBgTWUUmCFX9DPhMRHqq6s+lGFP08S0WVKkmZB3dRH3Fad0a0kmiJrvRrdsQSxDGmAgqrorpTlV9CrhYRC4qfFxVbwprZNHEK0FkHOViQYeTkgIbYpMhbw3py9NJbtUyPC9kjDFBKK6KaYl3P6s0AolqXoLYIy4zhCtBiEB2tSTYBZsWbCN5YHhexxhjglFcFdP/vPt3fPtEJAaopqq7SyG26LFnDwC7NLwJAiA/KRl2wbbl1tXVGBNZwUzW96GI1BCRqsBCYLGI3HG455UrvgSRXx0Ib4KoVN+Npt6z2rq6GmMiK5h+lG29EsOfgC+BZsClYY0q2ngJYkde+BNE1cZuLETWRq8EkZUF77wD+/aF70WNMSaAYBJEJRGphEsQE1Q1B9DwhhVldrsate3Z4U8QtVu4EkT+Vq8E8X//B5dfDk88Eb4XNcaYAIJJEK8Ca4GqwDQRaYKbqK/i8EoQ23JcZqgWxomSktq4EkT87nSys2H3h/8DYN/E78L3osYYE0Aw030/r6oNVXWAOuuAvqUQW/TwEsQeqlOtGsTGhu+lEhq4EkQS2/jbBZupsXIuAHFzZ8L+/cU91RhjQiqY2VwTgAuApoXOfzhMMUUfvwQRzuolAJJdCSKJdPZ/Prlgd3z+fpZ/NJtWl58U5gCMMcYJporpM2AwkAvs9btVHF4bxB6qh22ajQJJrgSRzDYurPEVAPsrVQVg1nPTw/zixhhzQDDTfaeqav+wRxLNvBLEbmqEvwThJYi6MdsYGO9KEFkjbibhpcepNu9H1q69o/By1sYYExbBlCB+EpH2YY8kmpVmFVNiIlStSkx+HrJtGzRtSs1brwDgJKbz7MiK1YHMGBM5wSSIXsBsEVkmIvNFZIGIzA93YFGlNBMEFLRDANC/PzRvTk5yfZJJZ9rry0i3QdbGmFIQTII4G2gJnIWb9nsgB0//XSQR6e8llpUicneA4wki8rF3fIaINPX2dxeRed7tNxE5L9g3FBZ+bRClkiC8aiYA+vUDESr16QVA56zpjBpVCjEYYyq8YLq5rgMaAad52/uCeZ6IxAIv4RJMW+AiEWlb6LQrgR2q2gJ4FnjS278Q6KqqHYH+wKsiEkx7SXiUZhsEHChBxMXBaae57ZPd8t+9+JGPPy6FGIwxFV4wP/QPAncB93i7KgHvB3Ht7sBKVV2tqtnAaFxvKH+DAd9kgGOA00VEVHWfquZ6+xOJ5Mht1dKvYvKVIE4++cCw7V6uBNFbprNgAaxaVQpxGGMqtGCqmM4DBuF1bVXV34HqQTyvIbDB73Gaty/gOV5C2AUkAYhIDxFZBCwArvVLGAVEZISIzBKRWVu3bg0ipCOQlQV5eeTEJpBLpdJJEM2aufuBfvN9n3ACVKlCC11BXTYzfnwpxGGMqdCCSRDZqqp4f8V7s7qGnarOUNV2QDfgHhE5ZB1sVX1NVbuqateUlJTwBOK1P2RVCv88TAVuuw3efhtuvvnAvkqV4MQTATiJnw5KEHv3wl13wQ8/lEJsxpgKI5gE8YmIvArUEpGrgW+A14N43kZc24VPqrcv4DleG0NN4KA+Oqq6BMgAjg/iNUPPq17aGxv+tSAK1KkDl13mkoI/rx3ilNjp/Pwz/PGH2/3oo/DUUy5JGGNMqATTSP0Mrn1gLNAaeEBVXwji2jOBliLSTETigeHAhELnTAAu87aHAFNUVb3nxAF4kwO2wU0YWPp8CSKmFEsQRenRA4DTa85GFT77zLVFjBzpDi9Y4JpMjDEmFILqGaSqXwNfl+TCqporIjcAk4BY4D+qukhEHgZmqeoE4E3gPRFZCWzHJRFwYy/uFpEcIB/4m6pGZgUdL0FkeM0uYZ9qozidOwPQJnMOQj7jx8fw1VeQne0OZ2TA+vXQpEkEYzTGlBtFJggR2UMxvYdU9bB/S6vqRGBioX0P+G1nAUMDPO894L3DXb9UeG0QuzUKShANGkCDBsRv2kQLWc3XX7cgPx+qVoXmzV0JYuFCSxDGmNAosopJVat7SeA54G5cj6NUXJfXf5dOeFGgYDW5UmyDKI5Xiri4zRzy892uf/wD+noTsC9cGKG4jDHlTjCN1INU9WVV3aOqu1X1FQ4dz1B++RJEbhSUIKAgQQxsMBtwJYdbboHjvSZ8SxDGmFAJJkHsFZE/i0isiMSIyJ+pSNN9ewlie45LENWDGQESTl26ANBJ53DXXTBunJvfzxKEMSbUgmmkvhhXzfQcrk1iurevYvC1QVCdKlXc7BcR5ZUgYufN5olvFUQAaNfOHV6yBHJzoyBOY0yZF0w317WqOlhVk1U1RVX/pKprSyG26FDa8zAdTmqqm6tpxw5Yt65gd40a0LixW5XUpuEwxoRCMFVMFVtpz8N0OCIF1UzMmXPQIV8104IFpRyTMaZcsgRxONGWIKCgmonZsw/a3d5b1snaIYwxoWAJ4nD81oKoVSvCsfj4EkQRJQhLEMaYUAhmuu8kEXlBROaIyGwReU5Ekg73vHLDrwSRFC3v2lfFNHv2QXNrWIIwxoRSMCWI0cAW4ALcfElbgYqzZI1fI3WdOhGOxadpU6hVC7ZuhY0H5j9s0wZiYmDFCjdLOcCWLW4KDmOMKalgEkQDVX1EVdd4t0eBeuEOLGr4lSCiJkGIHKhmmjkTpk+Hxx8nccUCWraE/HxYuhS+/97lkjPOiGi0xpgyKpgEMVlEhnuD5GJE5ELcBHwVg18bRNQkCDhQzTR0qFtt7r774OKLOb6dq3L64AMYNAgyM2HGDFi7NnKhGmPKpiIThIjsEZHdwNXAh0C2dxsNjCid8KJANJYgAHr3dvd5eW4Fuho1YOFCzkpyPZueecblNt+SEl99FaE4jTFl1mEn6/PuY1Q1zrvFBDOTa7mQkwP795MnsWRSOboSxMCB7lfft0D1X/8KwGnr3yo45bTT4Nln3bYlCGNMSQXVzVVEBonIM95t4OGfUU4ctFiQRFeCEIF+/VzXJZGCBNH8lw+plZhFly4wfjwM9qZV/PZbCmZ/NcaYYATTzfUJ4GZgsXe7WUT+L9yBRQWv/SFD3Ax9UdPNNZATToBOnYjZtZMNL37GL7+4WqfUVJdDMjJg1+5IB2mMKUuCKUEMAM5U1f+o6n+A/sA54Q0rSvi6uHqLBUVVCSIQrxRR7dO3Dpqsr39/d799ewRiMsaUWcGOpPYfQxzJRTdLl5cgdnqLBdWuHclggnDxxRAfD5MnQ1pawe6zz3b3hROErV9tjClOMAni/4C5IvK2iLwDzAYeC29YUaJgkFx1qlVzv71RLSnJ9W1VhXffLdjdq5dblnRvhpvtdcUKN3xi1ixIT49gvMaYqFZsghARAX4ETgTGAWOBnqpaMUZSR+sYiOJ41Uw89RTMnw+4xHb66W73unXQsyfs2+duf/2rlSSMMYEVmyBUVYGJqrpJVSd4tz9KKbbIi9YxEMXp3x/OOw927XLba9YAB6qZfv/dlRpq14bYWPjf/+CFFyIYrzEmagVTxTRHRLqFPZJoFI3zMB1OTAx8+CH07QubNsGZZ8LmzQUJAuDqq93U4G3auMd33HHIxLDGGBNUgugB/CIiq0RkvogsEJH54Q4sKkTjTK7BSEyE//7Xzde0ahUMG0aTJtCqFbRqDa++6oZOJCfD3/4G2dkwbJib2M8YY3yCWbm4X9ijiFZlsQ3Cp0YN+PJLlxW+/x4WL+aYY7xjcuC0f/0LfvoJ5s1zhY0pU6J8vIcxptQUNxdToojcAtyBG/uwUVXX+W6lFmEklcU2CH9168KFF7rt994LeEpi4oE8Mn8+nHUW7NxZijEaY6JWcVVM7wBdgQXA2cC/SnpxEekvIstEZKWI3B3geIKIfOwdnyEiTb39Z3qLEy3w7k8r6WuHRFlsgyjs0kvd/fvvF9ldqX59V3I49ljXFnH22a7ayRhTsRWXINqq6iWq+ipuoaDeJbmwiMQCL+GSS1vgIhFpW+i0K4EdqtoCeBZ40tu/DThXVdsDlwGB//wNt7JeggA4+WQ322taWuCiQU4OXHUVDS8/k+/G7yQ1FX75BSZOLMRDGb8AACAASURBVP1QjTHRpbgEkePbUNXcI7h2d2Clqq5WVd804YMLnTMYV1IBGAOcLiKiqnNV9Xdv/yKgsogkHEEMR6cst0H4xMTAJZe47c2bDz6m6ro0vfkmfPMNjf55JTfe4EoZH1eMkS7GmGIUlyBOEJHd3m0P0MG37a0TcTgNgQ1+j9O8fQHP8ZLQLqBwE+kFwBxV3V/4BURkhIjMEpFZW7duDSKkEiqrvZgK81Uzbd3q1o/wXL3mXnjnHahSBapXh3HjuDLzRQAmTIC9eyMRrDEmWhS3HkSstx6Eb02IOL/tUlkPQkTa4aqdrikixtdUtauqdk1JSQl9AOWhDQKgZUs3fDovH7Ztg5UruXLNffx5wxMQFwdjxrhSBJD0+G1cd9xUBu/7kJ2nDnLzdBTX/3XTJrj/fpd8jDHlSjDdXI/URqCR3+NUb1+gc9JEJA43EWA6gIikAuOBv6jqqjDGWbTy0Abhc+mlsPFnWLYMLmnJpb79b755YJj19dfDSy/x8pK+7vFs75znn4dHHw183SeecMeXLYNPPgnjGzDGlLZgZ3M9EjOBliLSTETigeHAhELnTMA1QoNrCJ+iqioitYAvgLtVdXoYYyyW+rVBRP1MroczbBjExUK+Qp06fJcylHvaTYC//OXAOf/6F/ToAcB0TmJk7B1u/6hR/OelTPr3d3M5HeSHH9z9p5+62f+MMeVG2BKE16ZwAzAJWAJ8oqqLRORhERnknfYmkCQiK4G/A76usDcALYAHRGSed6sbrlgDys9HvEr4/MrVSEws1VcPvTp1oEtX6NoFtm7lobaf8HPyuQefk5DgBtVt3co9vadzW96TpDfrCunp/HzD+0yaBDfc4Hf+nj3w228HHt9zT6m8FWNM6QhnCQJVnaiqrVT1WFV9zNv3gKpO8LazVHWoqrZQ1e6qutrb/6iqVlXVjn630p0IIiMDgD1Uo3ZSWD+m0lM5EapVcz2bipKQAMnJDBsGIDy06xYAbuHfJMQrn38OX3zhnfvrr24d0zZtoGZN+OYbdzPGlAvl5JcvDMpT+8MRGDLE5ZFR24eykWNox2I++OvXANx8M2RlAdO92r/+/eGuu9z2PffY/OHGlBOWIIri1/5Qpru4HqF69dzvfg7xrOp3PQDnrfs3bdu6+f9GjuRAgjjpJJc1GjRw7RDjxkUucGNMyFiCKEoFL0EAfPABzJ0Lp7w/AhITifnqS964bQkA//doHnk//eJOPPlkN5bizjvd49GjIxSxMSaULEEUpbyMgTgKtWpBx464ecG93k49fx7J0KHQLHMRsRm72X9MUwqmiT3nHHc/daprmzDGlGmWIIqyaxdQsRPEQf7+d7eIxLvv8sYjm7iilate+u/mk/jqK++cFi2gYUM3GG/RosjFaowJCUsQRfFGBm8lxRIEQOvW8Kc/QXY2Nd55gRu7/gTA93knM3AgvP46LoGc5k28O2VK5GI1xoSEJYiieNNLbKGuJQifO7yBcy+/TOz33wFw3BUnkZcHI0bAbbdB/qneKOzvvotQkMaYULEEURS/BFERezEF1LOnm5tp1y7YuBGqV+fG19rzxhtuSqeRI2HERy5B5Hz7PT/9kEdOzmGuaYyJWpYgimIliMB8PZUATjwRYmO58kr4+muoXRve/LYpa2hKpYyd3HDKb/Tq5XKJMabssQRRFEsQgZ1zjhs5DW78g6dPH5gxwy0vsbqxK0X8qfoUfv0VunRx614bY8oWSxBFsQQRWEwMvPYaDBgAV1110KGWLd2h0x9zDdV39/iOvn3dOkV9+rhJX633qzFlhyWIIqgliKL17u0mZEpNDXy8rytBxM/4gUlf5HLTTW5l05tvdodWrizFWI0xR8wSRCC5uZCeTj7C3oQkKleOdEBlTMOGrjixZw+V5s/muefc7Bv16sG0adChA3z4YaSDNMYcjiWIQNLTEVXSSaJmUjjXVCrHvFIE334LwHnnubFzl1wCmZmuW+ymTRGMzxhzWJYgArEurkevf393/+qr3tSvkJQE770Hgwe79a7/8Y8IxmeMOSxLEIFY+8PRGzQIjj8e1q+HV1456NDTT0OlSvDWW24yQGNMdLIEEYgliKMXG+vWqwa3nrU3txVAy/h13HrNPlTdFE+2fIQx0ckSRCB+CcI3Uak5AgMGwCmnwPbt8NRTrvHh+uuhaVMeWX4hSUlu4tfPPot0oMaYQCxBBGIJIjRE4Mkn3fazz0K3bvDyywDET/6Cf1+/AnA5Y+PyvdC+PfTrZ4MljIkSliAC8UsQDRpEOJay7sQTXRemzEzXjal1azjjDAAu3v8WvXvD77/DO33egoULYfJkW3DImChhCSIQK0GE1tNPu5WHrrsOZs+GBx8EIObdt/nvmFzatc5l+KaRB86/7z40a3+EgjXG+FiCCMRKEKF17LGuu9LLL0PVqm6J0latYNMm6vz6FVNuHE9z1rCCFiyLawtr13JblVfo3dtqm4yJJEsQgVgJIrxE4Ior3Pabb1L3nacBeCXx79ye63o+3auPMv/HXUydGqEYjTGWIALxzcO0I84GyoXNX/7iusL+978wcyYkJ/PPNZfxxIKB7O/Rm2TSeZCHePdtK0IYEymWIArbtw/JyGA/8VRtUAORSAdUTjVo4LrB+lx/PTXqV6Hd8ULCv58C4O88y8PvNyP7rvth3boIBWpMxRXWBCEi/UVkmYisFJG7AxxPEJGPveMzRKSptz9JRL4TkQwReTGcMR7CW4t6C3U5pqFlh7C68kp3n5jo+rr6nHgijBrFpoQmNNb1xD/1KHTqBJs3k58PGRmRCdeYiiZsCUJEYoGXgLOBtsBFItK20GlXAjtUtQXwLOB1micLuB+4PVzxFckaqEvPwIFw993w5puQknLwsWuuYeILq+nLFJZU7w47dpD52Ei6doVmzWzKcGNKQzhLEN2Blaq6WlWzgdHA4ELnDAbe8bbHAKeLiKjqXlX9EZcoSpc1UJee2Fj4v/+Diy8OeHjosBhmVO7LX/a4QqS+9DLr5qazbRvcemtpBmpMxRTOBNEQ2OD3OM3bF/AcVc0FdgFBNwuLyAgRmSUis7Z6VUNHzRJE1KhRA84/H2bRjW8r9aNKfgb313ie6tXh88/dmkXGmPAp043UqvqaqnZV1a4phasojpRVMUWVyy5z9w/muLnBb+R5Hr/LTfx3yy2w38bTGRM24UwQG4FGfo9TvX0BzxGROKAmkB7GmA7PShBR5bTT3Owc86r2YnenU4ndvZPr9GWOO861Q4wcefhrGGOOTDgTxEygpYg0E5F4YDgwodA5EwDvb0SGAFNUIzz5s5UgokpsLPzyC6xaBTWecqWI2OdG8tITewA3k7hVNRkTHmFLEF6bwg3AJGAJ8ImqLhKRh0VkkHfam0CSiKwE/g4UdIUVkbXASOByEUkL0AMqPKwEEXVq1XLrWXP66dCzJ2zbRt8fH+HSS2HfPtcZ6rrr3Cp1xpjQCeuCy6o6EZhYaN8DfttZwNAints0nLEVJf+PLcQA220UdfQRgeeegx494NlneWvuX+nQ4Tjuuw9GjYIpU+C777DEbkyIlOlG6nDI3+xKEFK3ro2ijkbdusFVV0FuLrG33sTttykzZ0K7drB8uStJHFRJmZ8PS5bYsnXGHAFLEP5UidnmEkR8at0IB2OK9PjjUKcOfPMNjB1Lhw7w1VeuW+yECfDpp37nPvwwtG0L774bsXCNKassQfjbuZOYvFx2UpPkhgmRjsYUJTkZHnvMbd96K2zeTGqqW3YC4IYbID0d8jIyyXrmBQD2PvtqcNdevRrq1oW77gpD4MaULZYg/FkDddlx9dXQtSukpblqp7lzueoq6NPHTad10UVwf5tPSdy7HYCqv/3M+u9WHf66b7zhLvDKKzbIwlR4liD8WYIoO2Jj3XDqnj1hwwbo1YuY8WN5/XU399/XX8OgjW796x1xyQCMG/Kh7584sPx8+OADt71nj2v1NqYCswThz8ZAlC316rluS5dd5vq7DhlCix/f5pVX4PwmszmRGWjNmiS85aqX+m//gH5nKTfeCKecAg0bunkCC/z4I6xff+Dx+PGl+36MiTKWIPytXQvA7xxjJYiyIiEB3nrLNVwDXHUVlyf9j7FnvAKA/PWvVBk+iLzkurRhGTG/zeHFF+GHH+D33+Haa+Gnn7xrvf++u/etU/HZZ5CXV7rvx5goYgnC38KFACyinZUgyhIRuOceuO8+94N+4YUHqoquvRbi4oi9aBgAz5zwPk8+6Xo9XX895ObC0KGwZcP+A92fnnzSzSm+ZQv8/HOE3pQxkWcJwt+CBe6O9laCKIseecQ1XmdludsZZ7iJnAD+/GcA+m4ezZ235dGvHzz7LPTq5UoSLw6YCDt3QseOcPzxcN557nn//W+E3owxkWcJwicvD128GIDlce1sFHVZJOJ6Hw0Z4h7f7rfeVPfu0KIF/PGH6+rUpQuV2rbkq5Y30j1pFScsdNVLy7pdgirknusSxLY3xjPyX8q2baX8XoyJApYgfFavRjIz2UAqlY+pbaOoy6rYWPjkE9i0Cfr1O7BfBC6/3G3/+CPMmQMrV1L1rRf5ZUcrBvMZ+Qh9X7+I446DYy7oyWbqkrxrNW/fvoCGDeGSS1yBYu1aG5htKgZLED5e+8NCjrfqpbJOBOrXP3T/7bfD2LGue+yMGa594bLLkNhY4shjbYszoMExLFsGW7fH8n1NtwDiXS3GkZPjmjXOOw/aNtvH7VVe5rnTPrP1sU25FtbJ+soUv/YHa6AupxIS3BJ1/k480Y3KnjCB5gMHsrYeTJ3qJvxrt/48OOd1/rz6Ef50zlLeb3AHu39awJ+X/INjsjaS+10sf+q+nFGTm5OaGpF3ZExYWYLw8UsQrVpFOBZTuho2dLP8AfHAWWd5+9v2g5tugpdfpurnH3MNHxc8Jb9yFeIy9zFwyVN07z6Kt9927dvJyRBj5XJTTthX2ceviunMMyMci4kOMTFuevHVq92cT1WrQpMm8N57xMyaiYpwhbyFbNpIv35u3F7lytC8OZx6qus49cgjbpZZY8oiifQCbqHStWtXnTVr1pE9OSsLrVaN/DwlOXEvm3YkkpgY2viiwjd93P0ZU+njbU6dGqFYyiJVDuq9MHQojBnDtC63cmPOSNLSYPv2Q58WSy4Xt19I35Oy+D21B5lZQm4u1K7tJqVNTYUzz4Q4K8+bCBCR2araNdAx+0oCLF2K5OWxgtb0OLWcJgdz9Ap3bbv3XhgzhlOWvMpv6+6F5GT2/b6T9K/nsHfecvKWLCfmt3k0+uNXqi3YCwtgKqdyPS+xmHYHXapjR3jtNTfvYGGZmfD5+Bx6n1YpYNu7MeFiCQIOan8oqH825nA6dXLTckyc6BYx2r+fKt98Q5Xc3ENO3ZPSjJg9u+mT9T3zYzoyq+dNTOx4Lxv2JfHttzBvHtzefRoPdJxA6pM30urMJgCMGwdfXfcZz2z9C29UuZnOnz9M376l/UZNRWUJAtAFCxFc+8MQa38wJXHffS5BfPaZexwT43pGHXcctGrl7k88ker16rn6p3/8g9hRo+gxfSQ95r0K115L5ssDWHfjM7RZ8yXMg2X9/keb5J+p2qgOu+euZDZ/oSa7uW3fI5x5+qnMePx0hgxxM53/8Qd06QItW0b2YzDllKqWi1uXLl30SO3udbYq6BW1xmp+/hFfJvp9faq7qeqpp7qbCYG77lI991zV119X3bLl8OfPmqV6tvvO+d9yq1bXzdWaqYJO5RStwU79LbajKmh+w4aqoOtJ1ZrsOOipMTGql12mumqVu/zO7Xm67t5RuuupV1TT04N7D9nZqtu3H/FHYMouYJYW8btqvZgA9XowJfVpbyOoTck98YRb6/SqqyAl5fDnd+niSh2zZ8MFF7hutrfeSuyaVdRdMg095hhOZRqba7WhQ948aNEC+e036NGDRqTxVvWbaNtoD4+1eIvp9c7jCb2Lz9/ZRuvW0KbudqbXGUjjx6+lxp3XkVu3AdnnD4MJE8jensH06a5jwv79uP9MmgRXXonWq+dazNu1g1tucdOomwrPejHt3Am1a7OPyox/Zw9//kts6IOLFtaLqWyYOxd694a9e93gvl9+ca3Yy5e7+8xM1582M7PgKZmVqvNCznUM5ROasZYdMXWYnd+J05hCDO7/8Wwq8RMn8TvHcELMAlrrUuL0QHvJfuJJILvgcdZTz5N4x42l975NRFgvpmLsn72QBGAxbTn9rHKcHEzZ0amTmxLkzjtdT6mOHd3+Vq3cwts33OCSQ69eMGwYfPEFlb/6ijt5CgDt1o3an35Kjc1NuPDGDbT69T0G8jk9mEEfvnfXyod8hAUczxiG8ClDSUtoQcf9vzCYz7iNkcTe+XfeXNyJc5/sRU6OW7hv2zaoUQOSklw3Xf+uuQkJUKUKVKqEq/1avx5++82t1Fezpnti27YuuZkyocKXIJbeMoo2z13HhNqXMWj726EPLJpYCaLsU3XVP40aHdwyPW2aW8fiuOPc1CEJCQWnT5nifthP7bCD+ounwK5d/JF8PJ+vacem3VXp2hV69HC/4YsWuSmqaj1yG8M2jmQT9enMHHZTg0t5j5OZzkQG8ClDyfP+vqxDOv2YxLGsognraC5r6BTzG7Xz0g8Jf3t8PV6ucz/P7buayjXjOeEEOOEE6NsXTjvtQE9izc1jw81Pk79uA/XffpLE5GoBP47t2904xk6d3DyN5VZenptDrE2bA1PYh0hxJYgKnyA+O/NFun3zOLNPvY1zp94WhsiiiCUIE6zcXHZ2O4Na875nGa2oJ1uopTsLDm+Ma8JHCZdzQs5M+mRPphKHdu3dRhJz6EwWidRgNw3ZSEtWArCK5rzHpWymHltJYSHHE9euDbfcAjV1B6m3X0TP3ZMA+DX2RD68+Av6XVSHBg1cU0laGrz6Knw8WsnPzqFV4/3ccFUWF18aS42mdUrnMyotv/0GI0bAr7+6XnIXXwwPPuimrw+BiCUIEekPPAfEAm+o6hOFjicA7wJdgHRgmKqu9Y7dA1wJ5AE3qeqk4l7rSBNEWpprp+vSKZ+Onct5m70lCFMSmze7BvWNG93jE0+Ec86B9947eP6Q2Fj353+XLtC4MfvrN2F5/PHM2tyIRYuF2FhXJVWnttJp7XjafXgviWuXHfJyi2jLf/kTw/iYFqximySTE1eZBjkbWMDxDOVTejCD4YymGzOpTCaVySxoY/FZmdSdzMEX0fIfw0hsdmDmzfx8tzjUunWuoFUnknlE1U1JX60aVK9+6CBMgHXryPv3C8S88G8kLw/q1oUdOyAnx33mQ4fClVe6z/4oJgCLSIIQkVhgOXAmkAbMBC5S1cV+5/wN6KCq14rIcOA8VR0mIm2Bj4DuwDHAN0ArVS1ygeCjmmqjorAEYUpq0SKXEM4/3y26BO6XdsIEV+XRtavriRVM7y2f3FwYM8bNf7ZlC2zejP74I+I3T8m2Rp2oOnk8lavFsv/UM0lYvbTIy2lcHHlxCezNTSQ+dy+VyXJhIqyMa8P8KieyvPIJVE7fSOvchbRkBRtoxJZjOlHlpI6Qn8++tZvJ37SFhPh8aiTFUyMlgb1xNVm1py5LttcjK7YqKSnuN7padUFjYtGYWBIqx5BSP5Z6DWKoXjuOzPwEMvPiSf99P3/8vIaM+ashPZ2EujWp3rQOdarlUHP2txy7chJ1sjYBrvPA9phk1sS1ZE1iW7YlNqTnzq/olj294H28HHMjT1R7lGMS0rk96xHO3/MOcbifw82Jjfmp1eWcN/0Ol3BKqLgEEbZxCUBPYJLf43uAewqdMwno6W3HAdsAKXyu/3lF3Y5mHESFYeMgTLTKzladPFn12mtVb71Vde/eA8e2bFHt2lVVRLVPH9VRo1Q3bFDNyFDNyTnoMivn79Vxwz/Wb2v+STNJOGSsSTTdtlNL91C1yON7qayjZZh249dDDjdmrT7AP3U1TVVB/4ipf8hnESyKGQcRzl5MDYENfo/TgB5FnaOquSKyC0jy9v9S6LkNC7+AiIwARgA0btw4ZIEbY0pZpUpuxsJAUymnpLiW84wMqFWr2Msc274Kx350IXAhOzfvZ9eMecivM4hbupDKLVOp3O14aNmSfUvWsWbcHPbPWgAJCVRqWI8qzeqRlRvH9k372bVlPzXydtAgbgtJuZuJzc5ifzZk74f8vHxi8vMQzUdz88jLziM3J5+YvBziySaebDQ2jozkpmiz5sQ3rMu+TbvI3ryd3H3ZpLfpRe4Z/Uk69Xhq1BQqSxaVd29Gly2DRYuIWbuG/G49SBw2mAsbVONC3JCVzEx327cPMjObkJn5IOsy7mfLjKnE79pKvTDM9limu7mq6mvAa+CqmCIcjjEmXOLiDpscCqtVLwEG9XC3Qqq0b0+7CweGKrqA6gZ9ZiLQBLo2AQJPBpeY6G61axc+EuPaIMIknK2yG4FGfo9TvX0BzxGROKAmrrE6mOcaY4wJo3AmiJlASxFpJiLxwHBgQqFzJgCXedtDgClendgEYLiIJIhIM6Al8GsYYzXGGFNI2KqYvDaFG3ANzLHAf1R1kYg8jGsUmQC8CbwnIiuB7bgkgnfeJ8BiIBe4XovpwWSMMSb0wtoGoaoTgYmF9j3gt50FDC3iuY8Bj4UzPmOMMUUr5yPDjDHGHClLEMYYYwKyBGGMMSYgSxDGGGMCKjezuYrIVmDdUV4mGTfdR0Vnn4Njn4Njn0P5/gyaqGrAybTKTYIIBRGZpUVNWlWB2Ofg2Ofg2OdQcT8Dq2IyxhgTkCUIY4wxAVmCONhrkQ4gStjn4Njn4NjnUEE/A2uDMMYYE5CVIIwxxgRkCcIYY0xAFTJBiMh/RGSLiCws4riIyPMislJE5otI59KOMdyC+Az6iMguEZnn3R4IdF5ZJyKNROQ7EVksIotE5OYA55Tr70OQn0G5/z6ISKKI/Coiv3mfw0MBzkkQkY+978IMEWla+pGWoqLWIi3PN+AUoDOwsIjjA4AvcetjnwjMiHTMEfgM+gCfRzrOUvgcGgCdve3qwHKgbUX6PgT5GZT774P371vN264EzABOLHTO34BR3vZw4ONIxx3OW4UsQajqNNz6E0UZDLyrzi9ALRFpUDrRlY4gPoMKQVU3qeocb3sPsIRD1z8v19+HID+Dcs/7983wHlbyboV78QwG3vG2xwCni4iUUoilrkImiCA0BDb4PU6jAv4PA/T0ittfiki7SAcTbl51QSfcX47+Ksz3oZjPACrA90FEYkVkHrAF+FpVi/wuqGousAtIKt0oS48lCFOUObg5Wk4AXgD+G+F4wkpEqgFjgVtUdXek44mEw3wGFeL7oKp5qtoRSAW6i8jxkY4pkixBBLYRaOT3ONXbV2Go6m5fcVvdyoCVRCQ5wmGFhYhUwv0wfqCq4wKcUu6/D4f7DCrS9wFAVXcC3wH9Cx0q+C6ISBxQE0gv3ehKjyWIwCYAf/F6r5wI7FLVTZEOqjSJSH1f3aqIdMd9V8rd/wjee3wTWKKqI4s4rVx/H4L5DCrC90FEUkSklrddGTgTWFrotAnAZd72EGCKei3W5VFY16SOViLyEa5XRrKIpAEP4hqkUNVRuHW0BwArgX3AXyMTafgE8RkMAa4TkVwgExheTv9HOBm4FFjg1T0D3As0hgrzfQjmM6gI34cGwDsiEotLgJ+o6uci8jAwS1Un4BLpeyKyEtfJY3jkwg0/m2rDGGNMQFbFZIwxJiBLEMYYYwKyBGGMMSYgSxDGGGMCsgRhjDEmIEsQpkzyZhf93NseJCJ3h/G1enuze87z+seHnYj8SUTa+j1+WETOCNG1O4nImyG61kCvG6gph6ybq4ka3kAsUdX8IM7tA9yuqgNLIa5RwI+q+n6IrxurqnlFHHsbN3vqmFC+pnftT4FHVfW3EFxLcNNwnKyq+446OBNVrARhIkpEmorIMhF5F1gINBKRV0RkVuE5+UWkv4gsFZE5wPl++y8XkRe97bdFZIjfsQzvvoGITPNKAQtFpHeAWE4XkbkiskDcehkJInIVcCHwiIh8EOA593vx/ygiH4nI7SJyrBej75yWvscislZEnvQeDxWRq0VkpjcJ3lgRqSIiJwGDgKe9eI/1f1+B4vS79kMiMsc71iZAvNWBDr7kICL/9K4xVURWi8hNfv8uS73XXS4iH4jIGSIyXURWeKOp8QbLTQXCnqhN6bMEYaJBS+BlVW2nquuA+1S1K9ABOFVEOohIIvA6cC7QBahfwte4GJjkTcR2AjDP/6B3/beBYaraHjfLwHWq+gZueoU7VPXPhZ7TDbjAu97ZQFcAVV0F7BKRjt6pfwXe8ntquqp2VtXRwDhV7eZNgrcEuFJVf/J7zY7e9YqN0+/a21S1M/AKcHuAz6ErLhH7awP0A7oDD4qblwmgBfAv73gb7zPs5V33Xr/nzwIOSbim7LMEYaLBOm+dBZ8Lvb+w5wLtgLa4H6g1qrrC+6u1pNU9M4G/isg/gfbeugf+WnvXX+49fge3qFJxTgY+U9Us73r/8zv2hvd6scAw4EO/Yx/7bR8vIj+IyALgz7j3W5zDxembaG820DTA8xsAWwvt+0JV96vqNtw01/W8/WtUdYFX5bcI+Nb77BcUuvYW4JjDxG3KIEsQJhrs9W2ISDPcX6inq2oH4AsgsQTXysX7XotIDBAPBQsknYKbjfNtEflLaEIv0lhcqWIgMFtV/Se22+u3/TZwg1caeIiSvddA9nv3eQSeay0zwGvs99v2f57//ny/x/mFrp3oXdeUM5YgTLSpgfsB3SUi9XA/suBm1WwqIsd6jy8q4vlrcVVQ4OrxKwGISBNgs6q+jvvrvvC60su867fwHl8KfH+YWKcD54pby7gafvXwqpoFTMJV9bxVxPPBLfG5yavW8a/C2uMdK+xI4vS3BFd1FEqtOLTaypQDliBMVPEaT+fiEsKHuB9h3w/uCOALULQa0gAAAO5JREFUr/ppSxGXeB3XbvEb0JMDf633AX4Tkbm4Kp/nCr1uFq6t4FOvuicfGHWYWGfi2grm49asXoBbYcznA+86k4u5zP241dumc/DU0qOBO7zGaF9SPKI4C8W8FKjpNVaHSl9cSc+UM9bN1ZijICLVVDVDRKoA04ARvvWdReR2oKaq3h/RIAsRkVuBPV4D/NFeqx7woaqefvSRmWhTIdeDMCaEXhM3oC0ReMcvOYwHjgVOi2RwRXgFGBqiazUGbgvRtUyUsRKEMcaYgKwNwhhjTECWIIwxxgRkCcIYY0xAliCMMcYEZAnCGGNMQP8PGIn5e5qk48oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# compute radius of gyration\n",
    "rg = md.compute_rg(traj)\n",
    "\n",
    "# make histogram of original simulation\n",
    "bb = np.histogram(rg,bins=100,density=True)\n",
    "cc = np.array(bb)[0]/sum(np.array(bb)[0])\n",
    "\n",
    "plt.plot(np.array(bb)[1][0:-1],cc,linestyle='-',color = 'blue',linewidth = 2,label=\"MD\")\n",
    "# draw vertical line indicating the average\n",
    "plt.axvline(np.average(rg), c='blue')\n",
    "\n",
    "# do the same with the new weights\n",
    "bb1 = np.histogram(rg,bins=100,weights=w_opt[1:],density=True)\n",
    "cc1 = np.array(bb1)[0]/sum(np.array(bb1)[0])\n",
    "\n",
    "plt.plot(np.array(bb1)[1][0:-1],cc1,linestyle='-',color = 'red',linewidth = 2, label=\"MD reweighted\")\n",
    "plt.axvline(np.average(rg,weights=w_opt[1:]),c='orange')\n",
    "# legend and labels\n",
    "plt.legend()\n",
    "plt.xlabel(\"radius of gyration (nm)\")\n",
    "plt.ylabel(\"Prob density\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The distributions of RMSD and RG don't change much on reweighting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Weights distribution"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Uniform weight MD ~ 3.335668301144134e-05"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reweighted MD ($\\theta = 5000$) ~ MD"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# make histogram of optimized weights\n",
    "bb = np.histogram(w_opt,bins=50,density=True)\n",
    "cc = np.array(bb)[0]/sum(np.array(bb)[0])\n",
    "\n",
    "plt.plot(np.array(bb)[1][0:-1],cc,linestyle='-',color = 'blue',linewidth = 2)\n",
    "plt.xlabel(\"$w$\")\n",
    "plt.ylabel(\"Prob density\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Reweighted MD ($\\theta = 10$)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# make histogram of optimized weights\n",
    "bb = np.histogram(w_opt,bins=50,density=True)\n",
    "cc = np.array(bb)[0]/sum(np.array(bb)[0])\n",
    "\n",
    "plt.plot(np.array(bb)[1][0:-1],cc,linestyle='-',color = 'red',linewidth = 2)\n",
    "plt.xlabel(\"$w_{opt}$\")\n",
    "plt.ylabel(\"Prob density\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## For extracting structures, shall we do something like choosing 100 most weighted frames or choose 100 frames in random but in a weighted manner (i.e. probability of highly weighted frames would be higher)?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# choose 100 samples\n",
    "ff = np.random.choice(len(w_opt),size=100,p=w_opt,replace=False)\n",
    "\n",
    "# save the frames to trajectory\n",
    "#traj[ff].save(\"new_trajectory.dcd\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 3930, 24743,  3490, 16971, 16433,  5345, 11710, 24768, 13678,\n",
       "        6164,  2508, 24808, 14429, 16669, 29457, 12557, 11875, 12268,\n",
       "       29703, 14607, 19920, 15827, 16759, 26800, 27586, 15002, 17442,\n",
       "       22501, 29002,  1019, 20251, 25281, 13665,  9461,  1995, 19103,\n",
       "       16288,  3947, 29728,  6420,  2673,  1054, 12484, 25332,  5610,\n",
       "       10201,  4848, 18183, 11451, 28426, 24467, 19371, 13562, 18352,\n",
       "        8425, 18723, 16754, 19733, 10913, 28502,  3259,  9452, 27649,\n",
       "       29229, 12107, 29149,  6744, 11705, 18564,  7621, 25486, 29741,\n",
       "        6614,  9542,  8628, 28747, 16482, 17430, 11715, 29078, 13617,\n",
       "       14201, 11326, 11667, 18049, 24301,  1086, 11425,   184, 18503,\n",
       "       13131, 25634,  9483, 13677, 14734, 13607, 14887,  3489,   426,\n",
       "       16913])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ff"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([4.95134641e-04, 3.49401324e-04, 1.04234510e-04, 1.94679744e-04,\n",
       "       6.59565719e-06, 2.06358896e-04, 2.94738419e-04, 4.29886393e-05,\n",
       "       1.44368910e-04, 6.21384919e-04, 4.05641822e-05, 1.35639577e-04,\n",
       "       2.49335382e-05, 5.43408151e-05, 8.62275826e-06, 2.21256495e-05,\n",
       "       7.37098340e-04, 4.67670860e-06, 1.45694400e-04, 4.45753588e-05,\n",
       "       1.64493946e-04, 1.54612698e-05, 2.58827891e-05, 2.63011553e-05,\n",
       "       3.87690813e-04, 1.11788993e-04, 2.28670169e-05, 1.22827069e-04,\n",
       "       1.63826440e-05, 7.20961712e-05, 2.31685419e-05, 3.74673704e-05,\n",
       "       4.41658223e-04, 1.08466893e-04, 3.18197818e-05, 6.76996418e-05,\n",
       "       2.82629494e-05, 9.07478044e-06, 5.23759375e-06, 5.32741181e-05,\n",
       "       1.05880956e-04, 4.24934915e-04, 7.69251785e-05, 5.01307931e-05,\n",
       "       2.26326956e-04, 6.18753411e-04, 1.40732084e-04, 3.68004416e-04,\n",
       "       1.01211980e-04, 1.54306366e-04, 1.21760705e-03, 3.34092545e-05,\n",
       "       8.03305670e-05, 2.73253187e-04, 2.05361647e-05, 1.07003790e-04,\n",
       "       3.23259161e-05, 5.00782056e-04, 1.43444048e-04, 1.12040569e-04,\n",
       "       4.24968925e-06, 1.99475407e-04, 4.02774057e-05, 2.89221317e-04,\n",
       "       1.08875327e-04, 4.57369989e-04, 4.00930862e-05, 7.72683498e-04,\n",
       "       1.28081036e-04, 8.97125863e-05, 8.67642913e-06, 1.19165588e-04,\n",
       "       1.54594466e-05, 9.34190571e-05, 1.07898043e-04, 7.35204934e-05,\n",
       "       1.13021662e-04, 1.94240950e-05, 3.39962383e-04, 1.27236664e-04,\n",
       "       9.54984876e-05, 7.07755324e-05, 6.05182061e-05, 3.90755083e-05,\n",
       "       4.16832610e-05, 1.15679537e-04, 3.43335651e-05, 2.92709237e-04,\n",
       "       2.27676186e-05, 1.01519544e-04, 1.53295216e-04, 9.99744066e-06,\n",
       "       5.61441401e-04, 5.50410126e-05, 3.90025744e-04, 1.70187418e-04,\n",
       "       1.30399359e-04, 5.41275472e-05, 1.02678812e-04, 7.07833285e-05])"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "w_opt[ff]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([64., 16.,  7.,  5.,  3.,  2.,  2.,  0.,  0.,  1.]),\n",
       " array([4.24968925e-06, 1.25585425e-04, 2.46921162e-04, 3.68256898e-04,\n",
       "        4.89592634e-04, 6.10928370e-04, 7.32264106e-04, 8.53599842e-04,\n",
       "        9.74935579e-04, 1.09627131e-03, 1.21760705e-03]),\n",
       " <a list of 10 Patch objects>)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "counts, bins = np.histogram(w_opt[ff])\n",
    "plt.hist(bins[:-1], bins, weights=counts)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Extract structures"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Good (highest weighted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [],
   "source": [
    "bla = sorted( [(x,i) for (i,x) in enumerate(w_opt)], reverse=True )[:50]\n",
    "bla = [(i,x) for (x,i) in bla]\n",
    "bla1 = np.array(bla)[:,0]\n",
    "bla1 = [int(i) for i in bla1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {},
   "outputs": [],
   "source": [
    "#fmt = '%d', '%e'\n",
    "#np.savetxt('good_C36m.dat', bla, fmt = fmt, delimiter='\\t')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {},
   "outputs": [],
   "source": [
    "# save the frames to trajectory\n",
    "#traj[bla1].save(\"good_C36m.dcd\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Good Ree_unscaled"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "topology = traj.topology\n",
    "back = topology.select(\"name CA\") #select all atoms\n",
    "atom_pair = [[back[0],back[-1]]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "end_unscaled = []\n",
    "for index in bla1:\n",
    "    #print(index)\n",
    "    end_end = md.compute_distances(traj[index], atom_pair, periodic=False, opt= False)[0][0]\n",
    "    end_unscaled.append(end_end)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [],
   "source": [
    "bla = [(value[0],value[1]) for value in zip(bla1,end_unscaled)]\n",
    "fmt = '%d', '%1.3f'\n",
    "np.savetxt('Ree_good_C36m.dat', bla, fmt = fmt, delimiter='\\t')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Bad (Lowest Weighted) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [],
   "source": [
    "bla = sorted( [(x,i) for (i,x) in enumerate(w_opt)], reverse=False )[:50]\n",
    "bla = [(i,x) for (x,i) in bla]\n",
    "bla1 = np.array(bla)[:,0]\n",
    "bla1 = [int(i) for i in bla1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "#fmt = '%d', '%e'\n",
    "#np.savetxt('bad_C36m.dat', bla, fmt = fmt, delimiter='\\t')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [],
   "source": [
    "# save the frames to trajectory\n",
    "#traj[bla1].save(\"bad_C36m.dcd\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Bad Ree_unscaled"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "end_unscaled = []\n",
    "for index in bla1:\n",
    "    #print(index)\n",
    "    end_end = md.compute_distances(traj[index], atom_pair, periodic=False, opt= True)[0][0]\n",
    "    end_unscaled.append(end_end)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [],
   "source": [
    "bla = [(value[0],value[1]) for value in zip(bla1,end_unscaled)]\n",
    "fmt = '%d', '%1.3f'\n",
    "np.savetxt('Ree_bad_C36m.dat', bla, fmt = fmt, delimiter='\\t')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
